作者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。
有解法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.130.166.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1450936785.A.B8E.html
※ wanzoo:转录至看板 Windows 12/24 14:00
1F:推 LPH66: 换个想法, 你要的东西是以 _ 切开之後的 123.195.39.85 12/24 22:06
2F:→ LPH66: 第 3,4 个东西, 那就是 123.195.39.85 12/24 22:06
3F:→ LPH66: for /f "delims=_ tokens=2,3" %0 in ... 123.195.39.85 12/24 22:06
4F:→ LPH66: 啊, 楼上打错了, 是 123.195.39.85 12/24 22:07
5F:→ LPH66: for /f "delims=_ tokens=3,4" %0 in ... 123.195.39.85 12/24 22:07
6F:→ LPH66: 然後取 %0 跟 %1 自己接起来用 123.195.39.85 12/24 22:07
7F:推 OSDBNetwork: for /F "tokens=1,2,3,4 delims=_" 111.255.146.55 12/30 03:05
8F:→ OSDBNetwork: %1 in (test.txt) do @echo %3_%4 111.255.146.55 12/30 03:05