如何在Windows中定期刪除早於特定時間的檔案?

如何在Windows中定期刪除早於特定時間的檔案?

我想在 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用於安靜模式,以便不要求您確認目錄

測試

用。delecho這將列印每個將被刪除的文件,而不是實際刪除它。

答案2

不完全是你想要做的,但我想說,在談論 Windows 時,ccleaner 的自動清理值得考慮。我用它來尋找和清理 Windows 機器的 tmp 檔案。

它的 CLI 有限http://www.piriform.com/docs/ccleaner/advanced-usage/command-line-parameters#Command-line_parameters_for_CCleaner_

另外,如果你是 shell 愛好者並且你說你需要 W7,你可以嘗試 powershell:

http://www.google.es/search?q=powershell+remove+x+day+older+files

相關內容