##title##

2020年5月9日

bat:用for迴圈,delims用逗號解析,tokens取得指定位置字串

例如假設一個temp.txt內容是這樣的結構:

aaa.txt,fc313413c21665fb888ed96821b5849c,,,,,,,2020/3/1 下午 10:22:30,2020/5/9 下午 10:02:56,
bbb.txt,53b568c4937817f672432488c19ed67a,,,,,,,2020/5/9 下午 10:27:55,2020/5/9 下午 10:27:53,



想用for將文件以delims用逗號解析,每行取得第1和第2部分內容ECHO輸出到new.txt的寫法:

REM 去除DATE系統中變數中/部分指定為變數NDATE
set NDATE=%DATE:/=%
REM 只擷取NDATE變數中第1~8字元(在此處為日期的YYMMDD)
set SDATE=%NDATE:~0,8%
For /f "delims=, tokens=1,2" %a in (temp.txt) do ECHO %SDATE%,%a,%b>>new.txt



new.txt內就會寫入像這樣的內容:
aaa.txt,fc313413c21665fb888ed96821b5849c
bbb.txt,53b568c4937817f672432488c19ed67a

但如果寫在bat檔裡要執行for得把%寫為%%,然後如果是變數還是要%變數%,像這樣
REM 去除DATE系統中變數中/部分指定為變數NDATE
set NDATE=%DATE:/=%
REM 只擷取NDATE變數中第1~8字元(在此處為日期的YYMMDD)
set SDATE=%NDATE:~0,8%
For /f "delims=, tokens=1,2" %%a in (temp.txt) do ECHO %SDATE%,%%a,%%b>>new.txt

  • 參考:

Windows bat指令碼——for迴圈用法詳解(一)
https://www.itread01.com/content/1548430389.html

BAT批次指令: For的功能介紹
http://forum.twbts.com/thread-10170-1-1.html

BAT指令碼編寫要點(1)_特殊字元
https://www.itread01.com/content/1550475943.html

探密BAT腳本技術 解放你的雙手 減少重複勞動 原來如此簡單
https://kknews.cc/zh-tw/tech/ag26n3v.html

Windows Batch 常用命令
https://dotblogs.com.tw/grayyin/2016/07/28/171747

DOS指令 -- SET和變數
http://bigpxuan.blogspot.com/2016/08/dos-set.html

BAT批次指令: For的功能介紹
http://winbat-20170804.blogspot.com/2017/08/bat-for.html

沒有留言:

張貼留言