2014-11-20 77 views
2

,大家好我想寫殺死一個目錄中的所有文件的批處理文件 - 基本上每個文件將有「地位」在它蝙蝠文件刪除所有具有特定字符串的文件?

我不能殺了文件擴展名的文件,無論是 - 有這個帖子 batch script delete file containining certain chars然而 ,這似乎並沒有做到這一點

+1

'status'? – Stephan 2014-11-20 17:28:28

+0

循環遍歷所有文件。在每個文件上做一個'findstr'。如果'findstr'後的'%ERRORLEVEL%'爲0,則刪除文件。 – indiv 2014-11-20 17:32:19

回答

0
for /f "delims=" %%a in (' 
    findstr /l /i /m /c:"status" "c:\somewhere\*.*" 
') do echo del "%%a" 

這使用findstr列出包含文字(/l"status"忽略字符串大小寫(/i)的文件(/m)。使用for /f命令處理該列表以對每個文件執行del操作。

del命令只會回顯到控制檯。如果輸出正確,請刪除echo命令。

編輯如果字符串status是不是裏面的文件,但文件名,代碼的文件名中或filecontent內減少到

del "c:\somewhere\*status*" 
+0

抱歉,根本沒有這種喜悅 - 基本上唯一應該改變的是「c:\ somewhere \ *。*」位吧?我的文件路徑是這樣的 - C:\ Users \ John.Smith \ Desktop \ Docs \ - 所以最終的sytax應該是/ f「delims =」%a in('findstr/l/m/c:「status」「C :\ Users \ John.Smith \ Desktop \ Docs \ *。*「')echo del」%a「 – 2014-11-25 10:14:07

+0

@Mr_Fish,是的,您應該更改'c:\ somewhere'部分以符合您的環境。如果要搜索的字符串可以是大寫字母,那麼在「findstr」中加入一個額外的'/ i'來表示它忽略大小寫(我會將它添加到答案中)。如果輸出到控制檯是正確的(代碼不會刪除任何內容,只回顯命令),請刪除'echo'並再次執行代碼以刪除文件。 – 2014-11-25 10:21:53

+0

@Mr_Fish,請記住'%a'用於命令行,'%% a'用於批處理文件,因爲百分號需要轉義 – 2014-11-25 10:23:41

相關問題