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 回答