我想創建一個批處理文件,它將讀取.log文件,然後從中讀取錯誤並追加到.txt文件。 但我不希望批處理每次都重寫.txt,所以現在我正在比較這兩個文件的最後修改時間戳,然後只追加最新的更新。 以下是批處理文件比較上次修改的時間戳以使用批處理腳本更新文件
@echo off
color 3
cls
@FOR %%A IN ("%ProgramFiles(x86)%\Apache Software Foundation\Apache2.2\logs\error.log") DO @(ECHO=%%~tA& set timestamp=%%~tA)
echo %timestamp%
@FOR %%A IN ("D:\error.txt") DO @(ECHO=%%~tA& set timestamp2=%%~tA)
echo %timestamp2%
if %timestamp% gtr %timestamp2% (
set DirToSearch="C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs"
set LineToRead="error"
pushd %DirToSearch%
for /r %%f in (error.log) do (
For /F "tokens=*" %%l in ('Findstr /L /I %LineToRead% "%%f"') do (
if %%l equ " " (
echo File:"%%f" is Not OK >> D:\FileStatus.txt
) else (
echo Line: %%l>>D:\error.txt
)
)
)
Goto :End
:End
popd
)
pause
exit
現在我在這裏無法時間戳 比較這將是巨大的幫助,如果任何人都有助於實現這一目標。
比較時間戳的最佳方法是與unixtimestamps進行比較。也許你看看這裏:https://unix.stackexchange.com/questions/84381/how-to-compare-two-dates-in-a-shell –
可能的重複[如何比較DOS批處理文件的時間戳腳本?](http://stackoverflow.com/questions/1687014/how-do-i-compare-timestamps-of-files-in-a-dos-batch-script) – JosefZ