2017-01-21 2 views
1

Я хотел бы создать пакетный скрипт, который может сразу удалить несколько каталогов. Я искал в Интернете, но, похоже, только нашел методы для удаления нескольких подкаталогов или файлов. До сих пор я могу сделать скрипт для удаления одной конкретной папки, используя эту структуру:Удаление нескольких каталогов с одним пакетным файлом

rmdir "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies" /S /Q 

Затем я попробовал множество методов, чтобы объявить другие папки в различных комбинациях и последовательностях, но никто не похоже на работу. Сначала я попытался поместить все остальные каталоги в одну строку, за которой следует/S/Q, затем поместив rmdir и/S/Q в начало и конец каждого нового пути, а затем поместив каждый путь в новую строку, нажав enter. Я использую неправильные команды? Любая помощь приветствуется.

ответ

4
for %%a in ("dirname 1" "dirname2" "as many as you want") do rd /s /q "%%~a" 

должен делать то, что вы хотите - %% a устанавливается поочередно каждому аргументу [необязательно]. Вы: Должны использовать кавычки, если каталог содержит разделители, такие как пробелы.

+0

Спасибо, этот метод работал очень красиво. –

1

Вы можете просто использовать for цикл для перебора списка каталогов, в соответствии с:

pax> for %d in (c:\dir1 c:\other\dir2) do echo %d 
c:\dir1 
c:\other\dir2 

В вашем конкретном случае, это было бы что-то похожее на (в CMD файле):

for %%d in (c:\dir1 c:\other\dir2) do rmdir "%%~d" /s /q 
+0

Спасибо за ваш вклад, это сработало. Я буду архивировать этот метод в качестве альтернативы для будущего использования. Я хотел бы принять оба ответа, но могу принять только один ... –

Смежные вопросы