去年曾經寫過 "如何在 Batch 檔取得系統的日期、時間欄位" 的文章,靠的是 date 與 time 指令,但缺點是時間的精確度只能到「分鐘」而已,這次我們改用 %date% 與 %time% 環境變數,取得時間的精確度可達「百分之一秒」。
我們可以在 DOS 模式下用以下指令先測試出你的電腦輸出的格式,一般來說輸出的格式會受到 Windows 控制台中的「地區與語言選項」設定所影響,不過一般來說繁體中文的環境都不會有多大的變化,在使用前先確認一下輸出的格式是否跟我們所用的一致即可。
D:\>echo %date%
2008/12/06 星期六
D:\>echo %time%
21:47:59.49
首先,我們先取得今天日期的年、月、日
for /f "tokens=1-4 delims=-/ " %%i IN ("%date%") DO (
set year=%%i
set month=%%j
set day=%%k
)
再來,我們取得當下時間的時、分、秒、百分之一秒
for /f "tokens=1-4 delims=:." %%i IN ("%time%") DO (
set hour=%%i
set minute=%%j
set second=%%k
set centisecond=%%l
)
之後要組合含有日期、時間的字串就容易多了:
SET OutputDir=TEMP_%year%%month%%day%_%hour%_%minute%_%second%_%centisecond%