如何用批處理刪除指定大小的文件?

如何用批處理刪除某個文件夾目錄(該文件夾多層嵌套子文件夾)下所有大於 1000kb 的任何拓展名的所有文件,保留 1000kb 以下的文件?

比如這個文件夾是 E 盤根目錄名字叫做 xy 的文件夾。

此題終結,用:

for /r E:xy %%i in (*) do @(if %%~zi gtr 1024000 del "%%i" /f) 搞定

PS:EQU 等於; NEQ 不等於; LSS 小於; LEQ 小於等於; GTR 大於; GEQ 大於等於

感謝王廷虎的回答與舉一反三的解釋。


在Linux系統下使用1行代碼即可搞定。

find . -type f -size +1000k -exec rm -vf {} ;


在Windows系統下使用1行代碼即可搞定(PowerShell)。

ls -r|where {$_.Length -gt 1000*1024}|%{rm $_.FullName}

對執行結果不確定的話可以對rm(Remove-Item)命令使用-whatif參數在不實際執行的情況下查看命令的後果:

ls -r|where {$_.Length -gt 1000*1024}|%{rm $_.FullName -whatif}


在windows系統下使用一行代碼即可搞定(純批處理)

for /r YOURDIR %i in (*) do @(if %~zi gtr 1024000 del %i /f)

ps:如果放到批處理文件中執行, %需更換為%%

ps2:自行替換YOURDIR為你的執行目錄, 為當前目錄可省略.


推薦閱讀:

TAG:計算機 | 代碼 | 批處理 |