[問題] Windows CMD 分割字串

看板Programming作者 (Zoo)時間9年前 (2015/12/24 13:59), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串1/1
文字檔裡,每行的內容如下: 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。 有解法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.166.181 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1450936785.A.B8E.htmlwanzoo:轉錄至看板 Windows 12/24 14:00

12/24 22:06, , 1F
換個想法, 你要的東西是以 _ 切開之後的
12/24 22:06, 1F

12/24 22:06, , 2F
第 3,4 個東西, 那就是
12/24 22:06, 2F

12/24 22:06, , 3F
for /f "delims=_ tokens=2,3" %0 in ...
12/24 22:06, 3F

12/24 22:07, , 4F
啊, 樓上打錯了, 是
12/24 22:07, 4F

12/24 22:07, , 5F
for /f "delims=_ tokens=3,4" %0 in ...
12/24 22:07, 5F

12/24 22:07, , 6F
然後取 %0 跟 %1 自己接起來用
12/24 22:07, 6F

12/30 03:05, , 7F
for /F "tokens=1,2,3,4 delims=_"
12/30 03:05, 7F

12/30 03:05, , 8F
%1 in (test.txt) do @echo %3_%4
12/30 03:05, 8F
文章代碼(AID): #1MUudHkE (Programming)
文章代碼(AID): #1MUudHkE (Programming)