如何可以用Windows的batch刪除超過7日的資料夾和在資料夾內的檔案﹖
我已嘗試在Google上尋找資料,看到有網站教用forfiles來做。
這我參考它的資料修改,code如下︰
@echo off
set log_dir=D:\Backup
echo Starting Remove Expired File(7 days ago)...
forfiles /p %log_dir% /d -7 /s /m *.* /c "cmd /c del @path"
echo Starting Remove Empty Folder...
for /f "delims=" %%d in ('dir %log_dir% /s /b /ad ^| sort /r') do rd "%%d"
「D:\Backup」是儲存位置,這個資料夾內再有一些資料夾每日都會建立和複製一些檔案到有關資料夾中。
但是為安全起健,我進行了一些測試,主要是要找出超過7日的檔案,code如下︰
forfiles /p "D:\Bakcup" /s /m *.* /d -7 /c "cmd /c echo@file:date>=7 days"
但是出現「The filename, drectory name, or volume label syntax is incorrect」。
這我測試指令是那裡寫錯﹖同時如何修改。
forfiles /p "D:\tmp\" /s /m *.* /d -7 /c "cmd /c echo @file is over 7days"
reference :
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/forfiles
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/echo