看板 EZsoft 關於我們 聯絡資訊
: → JCC:如果不是以檔名 是要刪某日期以前的有辦法嗎? 04/21 10:29 獻醜,有更好的方法請指教 使用注意: 1. 綠底部份請自己到 cmd 下用 dir /? 看參數說明 2. :: 開頭的表示註解 3. 為了預防出錯,本程式不會一併處理子資料夾 4. 若有針對的檔案類型,例如純文字檔 (*.txt) 那就把 dir /tc /od /aa 改成 dir /tc /od *.txt 使用方式: 把要處理的資料夾拖曳到這個檔案的圖示上 為預防問題發生,所以我先把 del 的指令給註解,可以直接執行一次。 接著去看 C:\刪除清單.txt 的檔案看內容是不是的確都是要刪掉的檔案 若已確定清單大致上沒問題後,自己把 :: del 的註解拿掉,存檔後再執行一次 底下程式未詳細測試,使用前請三思。 若有刪錯檔案,請不要找我 -----------------8<------------------ (另存虛線內文字成 .bat 檔) @echo off :: mm 與 dd 兩位數, 不足兩位就補 0 :: 只會刪除 [ 小於 ] 設定時間的檔案 Set yy=2010 Set mm=01 Set dd=01 echo. > "C:\刪除清單.txt" :: 切換磁碟機,並進入目標資料夾 %~d1 && cd "%~dpn1" for /f "tokens=1,4* delims= " %%i in ('dir /tc /od /aa') do ( for /f "tokens=1-3 delims=/" %%a in ("%%i") do ( :: 年份小的情況 if "%%a" lss "%yy%" ( echo %%i - %cd%\%%k >> "C:\刪除清單.txt" :: del /q %%k > nul ) else ( :: 年份相同 if "%%a" equ "%y%" ( if "%%b" lss "%mm%" ( if "%%c" lss "%dd%" ( echo %%i - %cd%\%%k >> "C:\刪除清單.txt" :: del /q %%k > nul ) ) ) ) ) ) echo.完成刪除工作, 已刪除的檔案可以到 "C:\刪除清單.txt" 中查看 pause -----------------8<------------------ (另存虛線內文字成 .bat 檔) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.46.87
JCC:感謝 我來試試 04/22 09:22