bat-字符串分割


相信大家都知道VBA中的Split
函數,那麼在bat中是否有類似的功能呢?


正文


已有一個txt文本:將進酒·君不見.txttxt中每一行進行分割,分割符采用.,,.分別輸出文本文件,觀察不同分割符的效果


代碼


@echo off
for /f "delims=., tokens=2" %%i in (將進酒·君不見.txt) do echo %%i>>1.txt
for /f "delims=. tokens=2" %%i in (將進酒·君不見.txt) do echo %%i>>2.txt

代碼截圖


結果文件

1.txt


2.txt

代碼解讀

delims=.,,指定了分隔符,這裡指定了.和,為分割符tokens=2,指定了分割後,取哪一個部分,分割後的第一部分為1,依次為2,3,4。當省略delims參數,默認使用空格作為分割符;當省略tokens參數時,默認取第1部分for /f %%i in (將進酒·君不見.txt) do echo %%i>>3.txt

Ps:這裡也指出之前寫的一篇文章的錯誤,當一行中無空格時,for /f效果看起來就是逐行讀出文本文件,但其實它就是讀出空格分割後的第1部分