iT邦幫忙

1

如何編寫批次檔讓我可以抓取TXT檔中的某個字串

小弟需要寫個比對的批次檔來減少工作時間,問題說明如下:
透過自行編寫的一些步驟,得出某個字串為X10DAL-GG,想利用這個字串去找出在123.txt中一模一樣的字串並輸出為222.txt。
而123.txt的內容如下:
SupportModel=X10DRA,X10DRB,X10DAL-GG,X10DRC,X10DRD
SupportModel=X10DRE,X10DRF
小弟希望能經過比對搜尋後在222.txt中看到X10DAL-GG,另外是希望能透過for 迴圈+findstr完成,請各位專業大大能夠給予解答。
謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
wybeen
iT邦新手 4 級 ‧ 2016-06-21 08:46:59
最佳解答

直接用 findstr 不行嗎?
findstr /s /n /i /p /c:"X10DAL-GG" *
http://ithelp.ithome.com.tw/upload/images/20160621/20065840vmVfETGBn1.png

謝謝大大回應
用findstr也是可以找出字串,但它是將整行給顯示出來,就如同你的結果一樣:SupportModel=X10DAL-GG,X10DRF,但我希望能只顯示X10DAL-GG這個字串,是因為我後面還要對這個做個判斷,判斷如果有一模一樣的字串則繼續進行下面安裝,若沒有則跳出程式。(若有方式可以從整行中判斷也行,請大大賜教)

wybeen iT邦新手 4 級 ‧ 2016-06-21 14:09:58 檢舉

如果只要判斷檔案中有沒有該字串存在然後跑其他的 Script
那參考以下連結應該就好了
http://stackoverflow.com/questions/2010253/dos-find-a-string-if-found-then-run-another-script

謝謝指點迷津,問題已經解決。我運用了如下的command解決:
findstr /p /i /c:"X10DRA-GG" 123.txt
if errorlevel 1 goto error-2
if errorlevel 0 goto run next bat

1
Daniel
iT邦新手 2 級 ‧ 2016-06-21 09:47:23

http://ithelp.ithome.com.tw/upload/images/20160621/20099311XNUiegrLKC.png

謝謝回復,我嘗試看看。
只是有個小問題要請教一下,我可以BAT的檔案中寫power shell的指令嗎?
這樣會執行嗎?

Daniel iT邦新手 2 級 ‧ 2016-06-21 14:40:53 檢舉

http://ithelp.ithome.com.tw/upload/images/20160621/200993118bx6ItnEsI.png
我沒有試過 bat 呼叫 ps 指令,應該是不行,你可以試試看

謝謝指導,上面一位大大已經解決我的問題。

我要發表回答

立即登入回答