2012-09-18 25 views
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觸發事件創作,但我不知道我會怎麼做。

回答

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 
+0

安斯加爾謝謝!這是我需要的確切推動力。 – ArchitectOfDoom

相關問題