2014-01-30 83 views
2

得到一個特定的詞的計數我有一個名爲C:\User\abc\Desktop\Mtmlog.txt文件並對其內容的如何從一個文件

1 [email protected]:01:46:44:902 [email protected]:04:08:00:233 

1 [email protected]:02:40:44:908 [email protected]:03:08:00:293 

1 [email protected]:05:50:44:978 [email protected]:06:08:00:263 

1 [email protected]:09:45:44:103 [email protected]:10:08:00:283 

還有就是向下和向上的時間在該文件中指出的應用程序。

爲了檢查應用程序的連續性,我想要一個查詢來檢查向下計數是否等於向上計數。
如果計數相等,則應回顯Yes,如果計數不同,則回顯No

+1

是否所有行包含向下和向上的文字? –

回答

1

這是簡單易讀的。它計數出現「Up」的行數並設置變量「UPS」。然後計算出現「Down」的行數並設置變量「DOWNS」。

FOR /F %%C IN ('FIND /C "Up" ^< yourfile') DO SET UPS=%%C 
FOR /F %%C IN ('FIND /C "Down" ^< yourfile') DO SET DOWNS=%%C 
if "%UPS%"=="%DOWNS%" echo Yes 
if NOT "%UPS%"=="%DOWNS%" echo No 

將輸入文件的UPS設置爲4,將DOWNS設置爲4,打印「是」。

+0

嘿謝謝你,它適合我。但我對此有疑問。腳本應該首先檢查Mtmlog.txt文件的存在,如果存在,那麼它應該檢查Up和Down的計數。如果文件不存在,那麼輸出應該是編號。另外,如果文件存在上下移動,如果沒有上移和下移,那麼也應該輸出。現在如果沒有上下文存在,上下文件仍在上面腳本將輸出爲Yes(計數Up = 0 = Down) – user3164140

1

這個作品在這裏:

@echo off 
findstr /v "^$" "C:\User\abc\Desktop\Mtmlog.txt" |findstr /v /i /r ".*down.*up.*" >nul && (echo No) || (echo yes) 

這是另一種選擇:

@echo off 
set var=0 
findstr /v "^$" "C:\User\abc\Desktop\Mtmlog.txt" |findstr /v /i /r ".*down.*up.*" >nul && set var=1 
if %var% equ 1 (echo No) else (echo yes)