我在包含各種文件的目錄中有很多文件夾。每個文件名以XXX_開頭,其中XXX可以是文件所在文件夾的名稱。我需要做的是通過所有這些文件夾並刪除任何文件,其中XXX是文件所在文件夾的名稱。批處理文件刪除文件夾中的文件
回答
請注意這個問題:Iterating through folders and files in batch file?
。
我認爲這應該對你有幫助。
如果您需要進一步的幫助,請讓我知道。
EDIT#1
在DOS命令行百搭字符是*
。然後,在搜索某個文件的目錄時,可以考慮您的正則表達式,即您的XXX_
,並用*
完成它,這將只返回您要查找的文件。
這意味着,而不是給出的鏈接問題FOR
循環的一個*.zip
模式,你的第一個FOR
循環應該包含你的目錄名,然後拿這個變量與*
字符連接起來以獲得只有你要找的文件對於。
例如,考慮嘗試以下操作:
dir /s XXX_*.*
這應該只返回您所感興趣的文件,只要有正確的文件夾名稱。
編輯#2
謝謝具有一種高精度你的關心。
這是一個代碼示例,我希望如此,應該有所幫助。現在我知道你說你的循環是正確的,所以也許只需要這部分代碼。
@echo off
setlocal enableextensions enabledelayedexpansion
for /F "delims==" %%d in ('dir /ogne /ad /b /s .') do (
for /F "delims==" %%f in ('dir /b "%%d\%%~nd_*.*"') do (
echo %%d\%%f
)
)
endlocal
這工作,並列出包含在從電流(.
)子文件夾中的文件。
我已經從以下文件夾測試它:
C:\ DOCUME〜1 \ marw1 \ MyDocu〜1 \ MyMusi〜1
凡 'XXX' 的文件夾被包含。這 'XXX' 文件夾中包含下列文件:
- XXX_blah.bmp複印件;
- XXX_blah.bmp;
- XXX_1234.ppt;
- XXX_textfile.txt。
從該結構中,輸出爲:
C:\ DOCUME〜1 \ marw1 \ MyDocu〜1 \ MyMusi〜1 \ XXX \ XXX_blah.bmp C:\ DOCUME〜 1個\ marw1 \ MyDocu〜1 \ MyMusi〜1 \ XXX \ XXX_1234.ppt C:\ DOCUME〜1 \ marw1 \ MyDocu〜1 \ MyMusi〜1 \ XXX \ XXX_textfile.txt
我然後懷疑把一個del
指令而不是一個echo
命令應該做的伎倆。這意味着要將文件夾名稱本身與其路徑隔離開來,您需要使用~n
指令以及文件夾變量名稱%%~nd
,其中您的迭代文件夾變量名稱爲%%d
。
此外,甚至可以在過程中使用參數化的批處理文件,而不是硬編碼,也就是說,如果'set YourFolder =...'
是生產代碼的一部分。這可能是這樣的:
@echo off
setlocal...
set root = %1
set root = %root:~1%
set root = %root:~0,-1%
...
endlocal
而不必'.'
在我的第一個FOR
循環合照,你會爲了考慮您的命令行參數,而不是硬編碼的文件路徑與"%root%"
更換的。
我的確幫助了!
不是我想要做的。我真的只需要一個腳本來刪除文件,如果它包含它所在的文件夾名稱的話。我可以編寫其餘的腳本來自己完成它。 – user290687 2010-10-12 16:41:42
如何將XXX與文件夾名匹配我有整個循環寫入我只是不知道如何編寫如果或從哪裏xxx文件夾== xxx從開始文件名? – user290687 2010-10-12 17:47:33
這是我有,但這不起作用 – user290687 2010-10-12 19:04:57
正如Ron所說,因爲問題被標記爲「windows」。
編輯:
Ron的答案,這似乎已經消失了!是使用del /s
EDIT2:
OK,它僅適用於文件名,而不是爲目錄。對於目錄你必須使用下面的草圖。
附加信息:當你想要做同樣的事情遞歸到目錄中的文件樹,(不像del
)沒有命令已經做橫移適合你,你可以使用for
命令的/R
選項。
要查看for
命令的文檔,請執行如下操作: start "for-help" cmd /k for /?
。
乾杯&心連心,
- 阿爾夫
我沒有看到羅恩的回答,所以我不是很瞭解你的。 – user290687 2010-10-12 19:34:07
del/s test *此命令適用於我 – Cid 2012-01-13 06:01:54
cd C:\"foldername"
del /s XXX_"*"
cls
exit
- 1. 批處理文件刪除文件夾
- 2. 刪除批處理文件夾中的文件和文件夾
- 3. 批處理文件,刪除文件和文件夾,除了
- 4. 批處理文件以刪除文件和文件夾
- 5. 批處理腳本犯規刪除文件夾,文件夾中的.txt文件:(
- 6. 批處理文件刪除結果*從文件夾的子文件夾
- 7. 批處理文件刪除另一個文件夾內的文件夾
- 8. 批處理文件刪除特定的文件夾
- 9. 批處理文件腳本刪除文件夾中重複的文件
- 10. 批處理文件。刪除目錄中的所有文件和文件夾
- 11. 批處理文件刪除用戶目錄中的文件和文件夾
- 12. 使用批處理文件刪除文件夾中的pdf文件
- 13. 批處理文件,刪除文件夾在Windows 7
- 14. 批處理文件只能刪除文件夾
- 15. 使用批處理刪除文件和文件夾
- 16. 批處理刪除文件夾+子文件夾中除文件類型以外的所有文件
- 17. 批處理腳本刪除給定文件夾中最舊的文件夾
- 18. 刪除文本文件中的批處理文件變量
- 19. 批處理文件刪除多個文件夾中保存最近的X文件的每個文件夾
- 20. 批處理文件文件夾比較?
- 21. 批處理文件:兩個文件夾
- 22. 批量刪除批處理文件
- 23. 從當前文件夾中的所有文件和子文件夾窗口批處理文件刪除前綴
- 24. 在批處理文件中的一個文件夾下刪除文件和文件夾
- 25. 批處理文件:如果文件夾中有子文件夾,如何刪除按日期排序的文件?
- 26. 使用批處理文件查找和刪除文件夾和子文件夾中的特定文件
- 27. 批處理文件搜索文件夾並刪除特定文件
- 28. 從批處理文件中的文件中刪除行
- 29. 批處理刪除沒有自己子文件夾的所有子文件夾
- 30. 批處理文件,刪除文件,還創建刪除文件的日誌
你的意思是,刪除任何文件(S),其文件名的目錄下,以'XXX_'開始? – Ruel 2010-10-12 16:31:39
是的文件的開始,直到_將等於文件夾名稱。 – user290687 2010-10-12 17:18:39