Server:\serverx の D:/folderx にあるログ ファイルを削除するバッチ ファイルを作成するための支援が必要です。これは、ディスク領域不足によるページ アウトを回避するためにディスクをクリーンアップする手動プロセスを排除するためのものです。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
(再利用できる古いライブラリが手元にあるので、今でも時々古いものを使っています。ただし、時間が経つにつれて、そのライブラリを 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