需要協助建立特殊的批次檔

需要協助建立特殊的批次檔

我需要協助建立一個批次文件,該文件將刪除伺服器上的 D:/folderx 中的日誌檔案:\serverx 這是為了消除清理磁碟的手動過程,以避免磁碟空間不足的頁面。超過 5 天且副檔名為 .txt、.trc 和 .phd 的檔案將被刪除。

有人有什麼想法嗎?

先致謝

答案1

我只是碰巧有這樣的東西。

forfiles -p "D:/folderx"  -s -m *.* /D -5 /C "cmd /c del @path /q

這就是所有文件;若要指定副檔名,您需要修改該*.*位。

forfiles -p "D:/folderx"  -s -m *.txt /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx"  -s -m *.trc /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx"  -s -m *.phd /D -5 /C "cmd /c del @path /q

(有時我仍然會踢它old skool,因為我有一個舊skool的庫可以重複使用。不過,隨著時間的推移,我正在powershell中重寫該庫。)

答案2

我同意其他評論,即今後應該使用 PowerShell 來執行此類自動化任務。這是一個小腳本,可以執行您所描述的清理工作。如果出於某種原因需要,您可以找到從批次檔執行 PowerShell 的各種方法,例如這個答案。更好的是,直接從計劃任務或自動化工具運行。

範例腳本:

$DIRECTORY = "D:\folderx"
$MAX_AGE_DAYS = 5
$matchedFiles = Get-ChildItem $DIRECTORY | where {$_.Extension.ToLower() -match "txt|trc|phd" -and $_.CreationTime -lt (Get-Date).AddDays(-1*$MAX_AGE_DAYS)}
$matchedFiles | Remove-Item

相關內容