0

タスク スケジューラによって開始されるスクリプトを介してログ ファイルを監視する方法を見つけようとしています。

理想的には、スクリプトがファイルサイズをチェックし、スクリプトが最後に実行されたときのファイルサイズと比較し、サイズが変更された場合は、イベントビューアーにエントリを書き込み、oldfilesize.txt を更新することです。ファイル。これは日常的に繰り返されます。

これまでのところ、私が思いついたのは次のとおりです。

dir logfile.txt > C:\filesize.txt
//this should give me the filesize and save the result into filesize.txt
COMP oldfilesize filesize.txt
//This should compare the old file created with the new.

これらのコマンドの後、私は迷子になります。コマンドの結果COMPを取得して、新しい結果を oldfilesize.txt に保存し、イベント ビューアーにイベントを書き込む必要があるかどうかを判断するにはどうすればよいですか?

イベントの作成をトリガーするために使用すると思いeventcreateますが、これをどのように行うかはわかりません。

4

1 に答える 1

3

の出力に基づいてこれを行うことはしませんdir。なぜなら、出力の何かが変更された場合 (サイズ、日付、空きディスク容量など) にcomp違いが報告されるからです。次のようなことを試してください:

@echo off

setlocal EnableDelayedExpansion

set datastore=C:\filesize.txt
set logfile=C:\logfile.txt

if exist %datastore% (
  for /f %%f in ('%datastore%') do set old_size=%%~f
) else (
  set old_size=0
)

for %%f in (%logfile%) do set new_size=%%~zf

if %new_size% neq %old_size% (
  echo %new_size% > %datastore%
  rem do other stuff
)

endlocal
于 2012-09-19T07:07:47.750 に答える