我需要帮助创建一个批处理文件,用于删除 Server:\serverx 上 D:/folderx 中的日志文件。这是为了消除手动清理磁盘的过程,以避免页面磁盘空间不足。扩展名为 .txt、.trc 和 .phd 且超过 5 天的文件将被删除。
有人知道吗?
提前致谢
担
答案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
(我有时仍会使用老式的方法,因为我手头有一个可以重复使用的老式东西库。不过,随着时间的推移,我正在 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