%%r
будет содержать полное имя файла, включая пробелы. Это ваш звонок на unrar
, который имеет проблемы. Если имя файла содержит пробелы, его необходимо заключить в кавычки, иначе unrar
не сможет увидеть, что два (разделенных пробелами) параметра file
и name.rar
на самом деле представляют собой одно имя файла с пробелом .
Таким образом, будет работать следующее:
for %%r in (*.rar) do unrar "%%r"
Кроме того, если вам интересно, в чем проблема, иногда очень полезно просто заменить вызов программы на echo:
for %%r in (*.rar) do @echo %%r
где вы увидите, что %% r включает пробелы в именах файлов и не разрывает их на части.