Windows

del *.txt 也刪除 file.txt_backup

  • July 18, 2014

假設我們有c:\test包含以下文件的目錄:

first.txt
second.doc
third.txt
fourth.txt_bak

我只想刪除txt文件,但doc保持txtwhatever不變。

當我執行 commanddel c:\test\*.txt時,它會刪除除第二個文件之外的所有內容。

有什麼想法可以解決這個問題以僅刪除txt文件嗎?

編輯:我不知道客戶將如何命名他們的文件。後綴可以是任何東西,不僅僅是txt_something. 也可以是txtsomething, txt-something, 等等…

我也不能在伺服器上安裝任何二進製文件,我只能使用預設的。

也許你可以使用forfiles命令:

forfiles /p "c:\test" /m "*.txt" /c "cmd /c del @file"

基於 fquinto 的想法,但更健壯:

mkdir FilesToSave.AEEC869E-A480-4459-84AE-B20D47A967BC
move *.txt?* FilesToSave.AEEC869E-A480-4459-84AE-B20D47A967BC
del *.txt
move FilesToSave.AEEC869E-A480-4459-84AE-B20D47A967BC\*.* .
rmdir FilesToSave.AEEC869E-A480-4459-84AE-B20D47A967BC

*.txt?*萬用字元將所有以 *.txt 開頭的副檔名超過 3 個字元的文件移動到臨時目錄。這些是 8.3 名稱以 .txt 結尾的文件。因此,在第 3 行中,您只刪除了真正副檔名為 .txt 的文件,而在第 4 行中,您恢復了可能被意外刪除的文件。

GUID 用於使臨時目錄獨一無二。

引用自:https://serverfault.com/questions/613567