私はBATの執筆に不慣れです。
ファイルが特定のサイズを上回っているか下回っているかを確認し、それに応じて電子メールを送信するバッチファイルを作成しようとしています。私は静的ファイル名でこれを行うことができる何かを書きました
@echo off
setlocal
set file="ssoff.bat"
set maxbytesize=1000
FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA
if %size% LSS %maxbytesize% (
echo.File is ^< %maxbytesize% bytes
blat -server mail.omers.com -f checker@omers.com -t rplomp@omers.com -s "filesize less than" -body testbody
) ELSE (
echo.File is ^>= %maxbytesize% bytes
blat -server mail.omers.com -f checker@omers.com -t rplomp@omers.com -s "filesize greater than" -body testbody
)
この場合、チェックされるファイル名はですssoff.bat
。ただし、日付に応じて毎日変更されるファイル名をバットにチェックさせる必要があります。ファイル名のマスクは、日付文字列IE:deployEAR_restartWAS_03132013.log ; deployEAR_restartWAS_03142013.log
...などを使用します。最後の8文字は、生成された日付を反映します。batは、そのディレクトリ内の最新のファイルをチェックする必要があります。今日は deployEAR_restartWAS_03152013.log
このログファイルも親ディレクトリにはありません。
batに最新のファイルをそのディレクトリから親ディレクトリにコピーしてから、そのサイズを確認することを考えたのではないでしょうか。または、ファイル名の静的部分を使用して、 その最後の部分を変数'deployEAR_restartWAS_'
に渡しますか?date
しかし、どのアプローチが最適かはわかりません。また、私が考えていない他のアプローチもあると確信しています。
batファイルの実行時間は、ファイル名の最後にある日付変数と同じ日になります。