Windows CMD 分割字串 - Windows

Suhail Hany avatar
By Suhail Hany
at 2015-12-25T01:30

Table of Contents

※ 引述《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來處理大概也就這樣了
更好的方法還是得請高手不吝嗇指教一下

--
Tags: Windows

All Comments

請問MS-DOS Phase out了

Zora avatar
By Zora
at 2015-12-25T00:02
您好! MS-DOS Phase out了 請問如果還要購買的話 還有哪邊買的到license呢? 謝謝! - ...

如何將IE升到最新

Regina avatar
By Regina
at 2015-12-24T23:17
想問看看要如何手動把IE更新到最新。 在幾台win10的桌機上,明明都是 11.20.xxxx版 http://i.imgur.com/8Nx2pkw.jpg 但是在一台win10平板卻是還在11.0.xxxx 。因為操作IE有遇到一些問題,只有在平板上才有,想説更新看看, 但windows卻都回已是最新。 ...

升win10後,office 2003可否使用?

Jack avatar
By Jack
at 2015-12-24T21:23
請問一下 有查到win10好像無法使用office 2003 目前系統是win7,請問升win10後 原有的office 2003是否就無法使用? win10是否有像過去XP升win7時,有所謂的XP模式 可以有向下相容的方式? ...

ComSpec在 Win10 環境變數 的路徑

Tom avatar
By Tom
at 2015-12-24T19:52
作業系統:Win10 版本 1511(OS組建 10586.29),x86 32bit Service Pack:不太懂。查了一下更新記錄,好像就是上面那個版本 1511吧? 發生問題頻率:似乎是恍神了一下,改到不該動的地方 是否有做Windows Update:Yes!!! 問題內容: 請問前 ...

kkbox的下載音樂路徑

Kama avatar
By Kama
at 2015-12-24T15:07
請問kkbox下載的音樂路徑是放在哪一個資料夾阿 我是安裝在C槽也是系統槽 但我進去kkox的安裝程式找不到下載的音樂檔 有誰知道嗎? - ...