2016-09-08 192 views
-5

我的日誌中,看起來像這樣計算數量

UID,  Provider,  MobileNo,  Result Time,  Outcome 
443,  ABC,  65437261, 2016-08-09 23:59:59,  Pass 
445,  ABC,  87658905, 2016-08-09 23:58:05,  Pass 
023,  ABC,  87658905, 2016-08-09 21:58:05,  Pass 
023,  ABC,  87658905, 2016-08-09 19:58:05,  Pass 

我想知道如何創建一個批處理文件,讀取文件,並計算文本文件格式每小時的交易次數。

我想我的成果如下:

2300Hrs 345 transactions 
2200Hrs 2891 transactions 
0700Hrs 8873 transactions 
+2

你試過了什麼? ATM這是太寬泛,很難弄清楚你想要什麼。 –

+0

有關您的需求的更多細節將有所幫助,以及您希望輸出看起來像什麼的示例。 – Squashman

+0

打開記事本(或其他純文本編輯器),輸入合適的命令並用'.bat'或'.cmd'擴展名保存文件。 – aschipfl

回答

3

我不明白你的要求(「每小時交易」是一個速度長期)。但是,如果你想計數的文件中有的同一時間,那麼這是一個解決方案:

@echo off 
setlocal 

rem Count transactions in the same hour 
for /F "skip=1 tokens=5 delims=: " %%a in (theLogFile.txt) do set /A "trans[%%a]+=1" 

rem Report them 
for /F "tokens=2,3 delims=[]=" %%a in ('set trans[') do echo %%a00Hrs %%b transactions 

輸出例如與給定的數據:

1900Hrs 1 transactions 
2100Hrs 1 transactions 
2300Hrs 2 transactions 
0

...作爲@Aacini卓越響應的延續,並搶先了解Provider和/或MobileNo領域中不可避免的空間,或許:

@Echo Off 
SetLocal 

Rem Count transactions in the same hour 
For /F "Skip=1 Tokens=4 Delims=," %%a In (theLogFile.txt) Do (Set _=%%a 
    Call Set/A "trans[%%_:~-8,2%%]+=1") 

Rem Report them 
For /F "Tokens=2,3 Delims=[]=" %%a In ('Set trans[') Do (
    Echo(%%a00Hrs %%b transaction(s^)) 
Timeout -1