2015-06-06 2 views
2

Я пытаюсь удалить папки (и их содержимое) в следующей структуре каталогов: C:\Root\*\Folder, где * - это переменная, однопользовательская директория. Я пытался использовать:Создание пакетного файла для удаления нескольких разделенных подкаталогов

rmdir /s /q "C:\Root\*\Folder" 

Однако, я узнал, что подстановочные знаки могут появляться только в последнем каталоге. Я нашел аналогичную проблему, связанную с копированием файлов в общий пункт назначения. Решение было:

for /f "usebackq delims=" %m in (`dir /b c:\users`) do copy "C:\Users\%m\AppData\Roaming\LordEpicalsFiles\Info.txt" "C:\My_Files\%m_Info.txt" 

(Original Post)

Однако моя попытка разобрать, а затем применить код не удалось. Вот моя попытка:

for /f "usebackq delims=" %m in (`dir /b C:\Root:`) do rmdir /s /q "C:\Root\%m\Folder" 

Любые комментарии и мысли приветствуются. Заранее спасибо!

+0

Попробуйте вместо/0 вместо – Marged

+0

Привет @Marged. Вы имеете в виду для/d вместо for/f? –

ответ

0

Это здесь даст вам список каталогов в C: \ Users:

for /d %d in ("C:\Root\*") do echo %~nd 

В зависимости, если вам нужен полный путь (это означает, что C:\Root\ включен), вы можете оставить ~n из

Так это (использование с осторожностью) удалит то, что вы хотите:

for /d %d in ("C:\Root\*") do echo rd "%d\Folder" /S /Q 

(Удалить echo, когда вы уверены, что это делает то, что года u want)

Обратите внимание, что я завернул путь в кавычки, это необходимо, когда ваш путь (в отличие от примера) содержит пробелы.

+0

Благодарим вас за код, @Marged! К сожалению, похоже, что это не сработало. Я скопировал его в новый пакетный файл - заменив мои фактические каталоги, но целевые папки остаются. Я помню, что в сообщении я связывал, что пробелы на пути могут быть проблемой, но я не уверен. –

+0

Вы удалили эхо из команды? Это поможет вам избежать случайного удаления. Если вы видите правильную команду с правильным путем на экране, вы можете удалить эхо и снова запустить команду. В противном случае я могу отправить вам скрипт, который автоматически уничтожит ваш полный жесткий диск, если вы не знаете ;-) – Marged

+0

Возможно, вам придется использовать% дважды: %%. То, что я написал выше, работает в командной строке, в пакете иногда приходится настраивать синтаксис – Marged

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