2014-12-05 361 views
0

匹配字符串我有一個看起來像一個輸入文件中的整條生產線:輸出基於命令行

application   database   variable   value    
+-------------------+-------------------+-------------------+------------------- 
O_PrTot    Rptg    ClosedMonthsFY13 Jan:Dec    
O_PrTot    Rptg    OMNICORE_Year  FY14    
O_PrTot    Rptg    ClosedMonthsFY14 Jan:Oct   

我需要找到ClosedMonthsFY14值是1月:十月這個輸出 放入。 txt文件。

感謝

+0

嗨@amanda,歡迎[這麼]!你有沒有嘗試過任何東西?請包括你的嘗試,更具體地說,事情在錯誤的方向轉彎。 – 2014-12-05 02:04:05

回答

0

基於你的標題「輸出繼電器基於字符串匹配整行」「這個輸出,並放入.txt文件」和你的評論,這應該工作。我們利用FINDSTR命令,根據我鏈接的TechNet文章,「使用正則表達式搜索文件中的文本模式」。我們不特別需要在這種情況下,正則表達式,但它仍將正常工作:

FINDSTR /I "ClosedMonthsFY14" C:\path\to\input.txt > C:\path\to\output.txt 

開關/I手段使搜索不區分大小寫。

+0

我試了findstr,它的工作原理。謝謝 – amanda 2014-12-07 03:17:12

0
@ECHO OFF 
SETLOCAL 
FOR /f "tokens=3,4" %%a IN (q27307586.txt) DO IF /i "%%a"=="ClosedMonthsFY14" SET "outstring=%%b" 
ECHO %outstring% 
FOR /f "delims=" %%a IN ('findstr /i "ClosedMonthsFY14" q27307586.txt') DO SET "outstring2=%%a" 
ECHO %outstring2:~61% 


GOTO :EOF 

我使用了一個名爲q27307586.txt的文件,其中包含您的數據用於我的測試。

這裏有兩種不同的方法。第一種方法依賴於每列只包含一個不包含空格或逗號分隔符的字符串的假設。

第二種方法使用列位置;所選行中的61個字符將被跳過,其餘部分將被分配給該變量。

要實際輸出的變量文件,只需追加>"filename"到合適的echo

注意,第二個方法將保留就行了,這可能會或可能不適合你的目的後面的空格。

/i switch在每種情況下使字符串匹配不區分大小寫。

(你的問題頭狀態「整行」,但您的敘述說,你需要找到

+0

這兩種方法都很好。謝謝 – amanda 2014-12-07 03:16:37