2017-08-03 52 views
0

我有一個名爲result.txt其中包含一個文本文件,需要特別指出的文本輸出,從文本文件

target reported max download size of 536870912 bytes 
sending 'recovery' (18502 KB)... 
OKAY [ 0.669s] 
writing 'recovery'... 
FAILED [ 0.138s] 
finished. total time: 0.807s 

我所需要的特定詞的準確輸出「失敗」作爲輸出(從第五行)

我運行該程序,

@echo off 
cls 
for /f "skip=5 tokens=1" %%a in (result.txt) do set word2=%%a 
echo %word2% 
pause 

但是,我沒有得到我所需要的輸出。請幫傢伙.. 我需要FAILED字(串)作爲輸出。

+0

僅僅根據你的' results.txt'文件,你不應該'跳過'4嗎? 'For/F「Skip = 4」%% A In(result.txt)Do設置「word2 = %% A」' – Compo

+0

你真的想要什麼:a)檢查,如果在第五行出現'FAILED' b)檢查文件中是否有FAILED,c)檢查它是否在第5行或更晚,d)檢查,*第五行是什麼*狀態? – Stephan

回答

0

爲康寶已經指出的那樣,你需要跳過行,如果你需要的第五...

但還有另一個問題。你的循環會繼續下去,因此,總會讓你獲得最後一行的第一個記號。爲了避免它,使用:

@echo off 
set "word2=" 
for /f "skip=4 tokens=1" %%a in (result.txt) do if defined word2 set "word2=%%a" 
echo %word2% 
pause 

@echo off 
for /f "skip=4 tokens=1" %%a in (result.txt) do (
    set "word2=%%a" 
    goto :next 
) 
:next 
echo %word2% 
pause 

這兩種技術打破了第一遍後循環。

0

,你可以分析你的Result.txt文件與find命令:

find "FAILED" result.txt

,或者使用與type管道,以避免----result.txt輸出:

type result.txt|find "FAILED" /i