前提・実現したいこと
お世話になります。
過去のログファイルを削除するバッチファイルを作成しています。
その際、forfilesというコマンドを使用しています。
やりたいこととしては、検索条件にヒットして削除された件数を表示させたいです。
ですが、良い方法が検索でひっかからず、お手上げ状態です。
イメージとしては、forfiles内で処理件数をカウントしていき、表示させるような...?
どうか何かいい方法がございましたら、ご教授いただきたいです。
ベースは下記のような形です。
@echo off rem 対象ディレクトリ set backupdir=C:\test\LOG rem 実行結果出力先 set output=C:\test\result.txt rem 日数指定(下記は60日以上前のデータを消す) set days=-60 rem ログファイル削除 for %%A in (log txt) do forfiles /P "%backupdir%" /M *.%%A /S /D %days% /C "cmd /c del /F /S /Q @file" >>%output% echo ERRORLEVEL=%errorlevel%
試したこと
① forfiles | find /c /v "" を使用
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13191467808
↓ 適用
for %%A in (log txt) do forfiles /P "%backupdir%" /M *.%%A /S /D %days% /C "cmd /c del /F /S /Q @file" | find /c /v "">>%output%
↓
エラー:無効な引数またはオプションです
②ループ内でカウント
set /a cnt=0 for %%A in (log txt) do forfiles /P "%backupdir%" /M *.%%A /S /D %days% /C "cmd /c del /F /S /Q @file" >>%output% & set /a cnt+=1 echo 処理件数:%cnt%
↓
%%A in (log txt) で指定している拡張子ぶん(つまり2)しかカウントしてくれない(現状、いつまでも処理件数は2と表示)
forfilesに指定した条件で削除されたぶん、カウントしていって欲しい
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/08 09:55 編集
2021/09/08 10:24
2021/09/08 10:26
2021/09/09 03:09
2021/09/09 04:18
2021/09/13 00:45