Re: [問題] Windows CMD 分割字串

看板Windows作者 (46825)時間10年前 (2015/12/25 01:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《wanzoo (Zoo)》之銘言: : ※ [本文轉錄自 Programming 看板 #1MUudHkE ] : 作者: wanzoo (Zoo) 看板: Programming : 標題: [問題] Windows CMD 分割字串 : 時間: Thu Dec 24 13:59:42 2015 : 文字檔裡,每行的內容如下: : 1A345_ABC_67890_XYZ_112233 : 32132_ABC_0983091_GJK_334455 : xxxxxxxx_ABC_yyy_RSF_556677 : 我想要取出 67890_XYZ 以及 0983091_GJK,以此類推。 : 請問有沒有最快的方法? : 我試著先用 delims 分割字串,但發現 delims 後面只能指定「字元組合」, : 而不是「完整字串」, : 比如用下列指令來分割第一行: : for /F "delims=_ABC_" %0 in (test.txt) do @echo %0 : 照理說要用"_ABC_"來分割成 1A345 及 67890_XYZ_112233。 : 但是,程式並不會以"_ABC_"來分割,而是以"_ABC_"裡能在第一行最先找到的字元來分割, : 也就是會用"_ABC_"裡的"A"來把字串割成 1 跟 345_ABC_67890_XYZ_112233。 : 有解法嗎? 我其實看不太懂你要取什麼部分XD 但就你舉的例子"delims=_ABC_"跟"delims=_ABC"是一樣的 後面的_是多餘 delims意思是把_和A和B和C四種字元當成分割點 像第一行就會被分成1 345 67890 XYZ 112233五個區塊 如下圖 http://imgur.com/ZweDUYM
如果只是要把_ABC_當分割點取成兩部分的話 如下圖 http://imgur.com/82Bynyy
這樣就稍嫌複雜了 外面的FOR先抓完整的句子 拿到另一個FOR去處理 其中!var:_ABC_=@!是為了把_ABC_換成@好讓delims將_ABC_識別為一個切割點 就可以將整句分成兩部分 似乎有別的指令可以處理這種 但如果是用FOR來處理大概也就這樣了 更好的方法還是得請高手不吝嗇指教一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.60.208 ※ 文章網址: https://www.ptt.cc/bbs/Windows/M.1450978231.A.5D4.html
文章代碼(AID): #1MV2ktNK (Windows)
文章代碼(AID): #1MV2ktNK (Windows)