我想在 Windows(特別是 Windows 7)中製定一個計劃進程,每 3 小時將刪除所有資料夾中早於 24 小時的所有檔案(如 Unix find 的-mtime +1
)。基本上,Windows 相當於在我的 Unix cron 中進行配置:
find $TRANSITDIR -mtime +1 -exec rm -rf {} \;
雖然我似乎發現 Windows cron 等效項是調度程式,我只是不知道 Windows 命令可以做到這一點。
有人準備好調度程序腳本嗎?
答案1
建立一個包含以下內容的批次檔:
REM Remove files older than 1 day
forfiles /p %1 /s /m * /c "cmd /c del @path /q" /d -1
然後開啟 Windows 工作排程器。建立一個基本任務來運行程序,並作為參數在引號中給出資料夾的路徑。
命令解釋
REM
是一則評論。
forfiles
將為每個文件運行一個命令。/p %1
定義檔案所在的路徑(%1
表示傳遞給腳本的第一個命令列參數的值)。/s
是遞歸的(進入子資料夾)。/m *.*
是檔案名稱掩碼。/c "cmd /c del @path"
指定要執行什麼指令。/d -1
表示超過 1 天的文件。
在本例中,cmd /c del @pat /qh
建立一個新會話並del
在 上執行(刪除檔案)@path
,即由 迭代的每個檔案的檔案路徑forfiles
。/q
用於安靜模式,以便不要求您確認目錄。
測試
用。del
echo
這將列印每個將被刪除的文件,而不是實際刪除它。
答案2
不完全是你想要做的,但我想說,在談論 Windows 時,ccleaner 的自動清理值得考慮。我用它來尋找和清理 Windows 機器的 tmp 檔案。
另外,如果你是 shell 愛好者並且你說你需要 W7,你可以嘗試 powershell:
http://www.google.es/search?q=powershell+remove+x+day+older+files