特別なバッチファイルの作成にサポートが必要です

特別なバッチファイルの作成にサポートが必要です

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

関連情報