太長不看版: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...