2013-06-26 3 views
4

Я пытаюсь использовать командный файл для удаления всех файлов с заданным именем во всех подкаталогах под вспомогательной директорией. У меня в основном есть папка с тысячами папок с именами GUID, у которых есть файл, который нужно удалить из каждого из них регулярно, и я не хочу продолжать выполнять поиск и удаление.Удалить имя файла из подпапок

типичные подпапки выглядеть следующим образом:

C:\folder\{000D5D3E-A54D-4B0B-8B03-95AC591CB20A}\ 
C:\folder\{00DBFD07-3218-4DC2-83CA-27A7D14D782C}\ 
C:\folder\{00A08715-0811-6142-50AE-82A332EA3A5F}\ 
...etc 

и я хочу удалить:

C:\folder\{000D5D3E-A54D-4B0B-8B03-95AC591CB20A}\log.xml 
C:\folder\{90DBFD07-3218-4DC2-83CA-27A7D14D782C}\log.xml 
C:\folder\{A0A08715-0811-6142-50AE-82A332EA3A5F}\log.xml 
...etc 

Это то, что я до сих пор .. но я не могу заставить его работать .. любой предложения?

SET _DIR_="C:\FOLDER" 
SET _PATTERN_="C:\folder\{*}\log.xml" 
C: 
CD %_DIR_% 
for /r /%f in (%_PATTERN_%) do ECHO "%f" 

Спасибо. Пожалуйста, ответьте только способы, чтобы сделать это в пакетном файле =)

ответ

3

любовь петли с безопасным ремнем:

for /d /r "C:\folder" %%i in (*) do if exist "%%~fi\log.xml" echo del "%%~fi\log.xml" 
3

* проверить это на ИСПЫТАНИЙ SUBTREE FIRST - это очень опасно ЕСЛИ TYPING так плохо, как MINE

(Извините кричать - но вы должны быть очень, очень осторожны с этим ...

Попробуйте эту команду ПЕРВОГО

DIR /S c:\FOLDER\log.xml 

и если это создает список файлов, которые вы хотите удалите, то

DEL /S c:\FOLDER\log.xml 

удалит их.

+0

Um Я думаю, что вопрос, который хочет задать, состоит в том, чтобы log.xml удалялся ТОЛЬКО из шаблонов папок с именами GUID .. как c: \ FOLDER \ {32423 ... и не только такая папка, как c: \ FOLDER \ то \ log.xml. – Irfan

+1

@ Power-Inside -OP указано 'Внутри всех подкаталогов под подкаталогом', но, конечно же, запрограммировал все' {..} 'dirctories. Идет, чтобы доказать, насколько важно быть точным. – Magoo

1
for /f %%i in ('dir {*} /s /b') do cd %%i&&del log.xml 

для использования в командной строке просто заменить %% я с% я. это должно удалить log.xml из любых имен папок, начиная с «{» и заканчивая «}»

Перейдите в соответствующий каталог первый!