2013-06-26 27 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

DIR /S c:\FOLDER\log.xml 

,如果產生你想要的文件的列表刪除,然後

DEL /S c:\FOLDER\log.xml 

將刪除它們。

+0

我認爲提問者想要的只是從具有GUID名稱的文件夾模式中刪除log.xml。像c:\ FOLDER \ {32423 ...而不僅僅是一個像c:\ FOLDER \東西\ log.xml。 – Irfan

+1

@Power-Inside -OP聲明「在子目錄下的所有子目錄內」,但當然是編程所有的「{..}」指令。去證明它是多麼重要是準確的。 – Magoo

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

在命令行中帶有%i使用簡單地替換%%我。 這應該從任何以'{'開始並以'}'結尾的文件夾名稱中刪除log.xml

導航到正確的目錄第一個

相關問題