→ JCC:感謝 我來試試 04/22 09:22
: → 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