老闆交代,Nas 上暫存簡報的目錄要自動刪除 3 天前的檔案。
Nas 是用 QNAP 的,上 QNAP 的網站看,要自動備份後才能自動刪除,感覺有點累贅,所以考慮在 Windows 設排程定時刪除。
查了一下,最簡便的方法是使用 Windows 內建命令 forfiles
但是 forfiles 不支援 UNC 路徑,所以必須將 UNC 路徑映射成網路磁碟。
最後我把下面內容做成 DelOldFiles.cmd 後,設定到工作排程器每日夜裡跑一次。
NET USE Z: \\伺服器名\完整路徑
forfiles /d -3 /p Z:\ /s /m . /c “cmd /c del /f /q @path"
NET USE Z: /delete /y
其中比較重要參數說明如下:
/d -3:表示刪除 3 天前檔案,詳細用法參見參考資訊的連結。
/f /q:表示靜默刪除唯讀檔,靜默對於排程很重要,表示不會跳出任何詢問,詳細用法參見參考資訊的連結。
/y:表示強制中斷網路磁碟,關閉所有連線,詳細用法參見參考資訊的連結。
參考資訊
- net use : https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/gg651155(v%3Dws.11)
- forfiles : https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/forfiles
- cmd : https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/cmd
- del : https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/del
註: Windows 內建命令可以從上面連結點進去,再從左側命令清單找到其他相關命令