2015-03-25 34 views
-1

我必須修改批處理文件來讀取日誌文件,每日日誌文件會被追加。我必須修改批處理文件來讀取日誌文件,每天都會追加日期

我的要求是我必須讀取當前日期的日誌並在日誌詳細信息中找到一些字符串。示例日誌文件如下。

c:\\> date /t 
Tue 03/23/2015 

Batch Summary 
------------------------ 
Total records = 11 
Total records with error = 0 
Batch filter ended 

c:\\> date /t 
Tue 03/24/2015 

Batch Summary 
------------------------ 
Total records = 11 
Total records with error = 0 
Batch filter ended " 
+0

歡迎計算器。請閱讀http://stackoverflow.com/help/how-to-ask – jac 2015-03-25 00:27:35

+0

你想找什麼字符串?一旦找到他們想做什麼? – 2015-03-25 05:55:58

+0

我必須從當前日期找到「總記錄錯誤消息= 0」和「批次過濾器結束」,然後將當前日期的日誌結果打印到「.txt」文件中,並通過電子郵件發送結果 – 2015-03-25 15:51:41

回答

0

你能詳細說明你想要做什麼嗎?

如果您正在嘗試獲取時間戳,則可以執行echo Timestamp[%date%, %time%] >> log.txt。由於您使用的是>>而不是>,因此您會在日誌文件中獲取每次請求的時間戳,而不是每次執行時都會覆蓋它。

樣品輸出將是Timestamp[2015-03-24, 20:37:31.86]

+0

我只需要讀取當前日期的日誌,並且必須從當前日期日誌塊中找到「帶有錯誤信息= 0的總記錄數」和「批量過濾器結束信息」,然後打印結果(%batchloghome%\%reqfilenamelist%)do( 顏色a FOR/F「eol =,tokens = 1 delims =,」%% i當前日期的日誌記錄到「.txt」文件中並通過電子郵件發送結果 – 2015-03-25 16:10:52

0
@ECHO OFF 
REM is there an entry for today?: 
find "%date%" sample.log >nul 
if %errorlevel% neq 0 goto :notfound 

for /f "delims=" %%i in ('find "Total records with error" sample.log') do set tr=%%i 
for /f "delims=" %%i in ('find "Batch filter ended" sample.log') do set bf=%%i 

echo %tr% 
echo %bf% 
goto :eof 
:notfound 
echo sorry, no data for today. 
+0

- @現在呼應日誌文件篩選 - @回聲%%我 - @集LOGFILENAME = %%我 - @呼應檢查變量 - @回波掃描的String..processing - @ echo%batchloghome% color b type「%batchloghome%\ %% i」|找到「Total Errors = 0」 IF ERRORLEVEL 1 call:NotOkay1 type「%batchloghome%\ %% i」|找到「批量過濾結束」 IF ERRORLEVEL 1呼叫:NotOkay2 IF NOT ERRORLEVEL 1個呼叫:好 ) 「帶誤差記錄總數= 0」 批次過濾目前使用從查找那些串截止 – 2015-03-26 15:15:22

+0

上述代碼即時通訊沒有附加日誌文件的日誌文件只有一天的日誌詳細信息現在附加,我只能讀取當前日期的日誌。 – 2015-03-26 15:17:53

+0

這就是我的代碼所做的事情:檢查是否有今天的條目,如果是,請閱讀最後的值(必須是今天的那些值,因爲它強烈按照時間順序排列,'for'命令中的'set'會覆蓋每個事件,所以最後,它保持最後一個值。 – Stephan 2015-03-26 15:39:13

相關問題