Часто встречаю в некоторых "батниках" вот такую "сакральную вещь": for /d %%i in (tmp\tmp*,tmp\pip*) do rd /s /q "%%i" 2>nul || ("%%i" && exit /b 1) & del /q tmp\tmp* > nul 2>&1 & rd /s /q pip\cache 2>nul
Давайте разберемся, что "это" значит. И так, по порядку: for /d %%i in (tmp\tmp*,tmp\pip*) do - цикл перебора всех папок в папках "tmp\tmp*" и "tmp\pip*" do rd /s /q "%%i" 2>nul || ("%%i" && exit /b 1) - удаляет текущую папку в цикле перебора, или выводит сообщение об ошибке & del /q tmp\tmp* > nul 2>&1 - удаляет все файлы в папке "tmp" & rd /s /q pip\cache 2>nul - удаляет папку "pip\cache" В общем, это (вроде) удаляет все файлы и папки в папках "tmp\tmp*" и "tmp\pip*".
Или вы подозреваете, что при удалении корневой папки, сами файлы, в ней находящиеся, не удаляются??? Смысл перебора какой??? )
Вот замена этому удалению с перебором": rd /s /q "tmp"
md "tmp" Насколько мне известно, временная папка находится в "%temp%", а не в "temp", в "%tmp%", а не в "tmp".
Куда делись символы % ?