
[已解決]批處理如何提取文本中指定字符串關鍵詞前面的特定行內容小弟不是很懂所以來問問。原LOG如下:--------------------------------------------------------------------------------------------------------------……BTS ALARM HISTORY LISTING<HIST> BSC455BCF-0440BTS-0440QUAL-03-1508:19:30.72*** ALARM DESHENGHUABY1ENABLED (38348) 7767 BCCH MISSING<HIST> BSC455BCF-0440BTS-0441QUAL-03-1508:19:30.92*** ALARM DESHENGHUABY2ENABLED (38349) 7767 BCCH MISSING<HIST> BSC455BCF-0440BTS-0442QUAL-03-1508:19:31.12*** ALARM DESHENGHUABY3ENABLED (38350) 7767 BCCH MISSING……END OF BTS ALARM HISTORY LISTINGCOMMAND EXECUTEDBTS ALARM HISTORY LISTING<HIST> BSC451BCF-0373BTS-0373QUAL-03-1508:27:31.50... CANCELDonGYIGUOJISFDISABLED (36699) 7767 BCCH MISSINGEND OF BTS ALARM HISTORY LISTING……--------------------------------------------------------------------------------------------------------------我寫的代碼:
提出來的txt是這樣的221:<HIST> BSC455BCF-0440BTS-0440QUAL-03-1508:19:30.72227:<HIST> BSC455BCF-0440BTS-0441QUAL-03-1508:19:30.92233:<HIST> BSC455BCF-0440BTS-0442QUAL-03-1508:19:31.12674:<HIST> BSC451BCF-0373BTS-0373QUAL-03-1508:27:31.50但我不想要字符為 CANCEL 的上一行數據。就是674這行的數據刪除掉,怎么能實現?我在論壇搜索了這個代碼想把CANCEL 那一行刪除掉再執行上面的代碼,但是他把前面的數據也刪除了。如下:nclick="copycode($('code0'));">復制代碼
- @echo off
- for /f tokens=1-4 delims=/-周 %%i in ('date /t') do set Date=%%i-%%j-%%k
- (findstr/n <QUAL> %Date%.log)>C:UsersAdministratorDesktop日志%Date%.txt
- exit
我只想實現這樣的,幫幫忙啊:221:<HIST> BSC455BCF-0440BTS-0440QUAL-03-1508:19:30.72227:<HIST> BSC455BCF-0440BTS-0441QUAL-03-1508:19:30.92233:<HIST> BSC455BCF-0440BTS-0442QUAL-03-1508:19:31.12nclick="copycode($('code1'));">復制代碼
- @set @n=0;
- arg = Wscript.Arguments(0);
- fso = new ActiveXObject(scripting.FileSystemObject);
- while (!WSH.StdIn.AtEndOfStream) {
- f = WSH.StdIn.ReadLine();
- txt = fso.OpenTextFile(f,1).ReadAll();
- txt = txt.replace(/QUAL[sS]*CANCEL/ig,);
- fso.OpenTextFile(f,2).Write(txt);
- }

