windows批處理for迴圈的坑

2021-08-15 17:23:52 字數 725 閱讀 7231

太長不看版:windows批處理的for,可以使用tokens和delims來讀出指定列的內容,但是,當分隔符緊緊相連的時候,token會按順序取下乙個不是分隔符的字元作為內容,而不是取null。

詳情:準備乙個測試檔案,叫test.txt如下:

1,2,3,4,5

1,,2,3,4,5

1,,,2,3,4,5

1,,, ,2,3,4,5

1,,,,a,2,3,4,5

開啟cmd,輸入如下內容:

for /f "tokens=2 delims=," %i in ('type test.txt') do (echo %i)

得到的結果是:

可以注意到,命令的分隔符是「,」,取的是第二列

第一行結果是2,無可厚非

第二行結果也是2,喵喵喵?難道不是null麼?

第三行也是2,顯然連續的多個逗號都被作為同乙個分隔符處理了

第四行取到的其實是空格,所以顯示了echo的狀態

第五行取到a,很合理……

結論,連續的分隔符會作為同乙個分隔符被處理,直到取到下乙個不是分隔符的字元,而不是我們以為的取到null。 那麼用for從csv中處理結果會變得賊麻煩……批處理真難用……

windows批處理for迴圈用法

windows批處理for迴圈用法 注意 空格 符號 用於將一行寫不下的windows bat批處理程式分成多行完成。for l i in 1,1,5 do echo i echo done 1 for迴圈 for迴圈的使用有多種,具本可在cmd中鍵入for 檢視幫助檔案。但以下三種格式在實際使用中...

批處理 迴圈

基本格式 for 變數 in 集 do 命令 注 在命令列中直接使用時,變數前是乙個百分號 for d variable in set do command 例1 輸出指定目錄下的所有資料夾 for d a in c users do echo a例2 輸出當前目錄下資料夾名為1 3個字元的目錄 f...

Windows批處理(一)

批處理是一系列可執行的命令集合揉成的乙個檔案,有點類似於日常開發中的乙個類。window平台下批處理副檔名一般為bat或者cmd 先介紹幾個簡單的命令 這是注釋命令,和開發中的 效果是一樣的,都是單行注釋。有效標號 冒號後面跟乙個變數字串,一般用於goto語句的跳轉。例如 functiona 和 a...