ログの削除をする際に、教わった便利なコマンド【forfiles】を紹介いたします。
以下が、基本的な構文になります。
forfiles [/P パス名] [/M 検索マスク] [/S] [/Cコマンド] [/D [+ | -] [{<date> | <days>}]]
・/P → パスを入れます。省略するとカレントディレクトリになります。
・/M → 検索したいファイル名を入れます。省略するとワイルドカードになります。
・/S → 入れるとサブディレクトリに対しても再起処理を行います。
・/C → コマンドを入れることができ、入れたコマンドを実行することができます。注意として、コマンドはダブルクォーテーション[“”]で囲む必要があります。
例:/C “cmd c/ echo @file“
※コマンドの中には@変数を含めることができます。以下は変数の一部となります。
@FILE ・・・ファイル名。
@FNAME ・・・拡張子のないファイル名。
@EXT ・・・ファイル名の拡張子。
・/D → 指定された期間内の最後に変更された日付のファイルを選択するようになります。以下、指定する例になります。
▶/D -1・・・一日前以前のファイルが対象になります。
▶/D +2019/12/01・・・2019/12/01以降のファイルが対象になります。
実際にコマンドを実行する想定をしてみましょう。
「TestLogフォルダ内のファイル名に”E1”とつくログファイルを消す」という想定とします。
コマンド実行前は、以下のような状態です。
選択されている4つのファイルが残るようにコマンドを作成します。
このコマンドを実行すると、E1とつく、ログファイルがすべて消えて、4つのファイルだけが残ります。以下結果になります。
何日前のログを消しましょうと言われた際には、想定で紹介したコマンドを参考にしつつ、/Dオプションをつければ対応可能なのでかなり役にたつと思います。
その他Forfilesの細かい部分については、以下のマイクロソフトのページで確認してください。
参考:https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/forfiles