2008年04月20日

[Windows] 去除環境變數DATE與TIME內的空白

有些處理我們會使用批次檔來寫,例如每天夜間的排程備份或輸出執行結果到Log檔,當這些輸出檔名必須帶有日期與時間時,經常都會有些不方便的地方 (如果你不清楚環境變數的運用的話,請先參考[Windows] 環境變數的擴充功能這篇的介紹)。 舉例如下:

cd  \Project\MyProject1
rem %DATE%傳回:2008/04/20,DATE1=0420,TIME1=HHMM
set DATE1=%DATE:~5,2%%DATE:~8,2%
set TIME1=%TIME:~0,2%%TIME:~3,2%
svn update  > UPDATE_%DATE1%_%TIME1%.log

以上指令看似正常,但當時間在早上0點到9點之間時,%TIME%傳回的竟然是  9:01:09.16-開頭第一個字元是空白,造成組成的檔名異常。另外,日期與時間的格式會因【控制台 →時鐘、語言和區域→地區與語言選項】裡的格式而有不同,為了一勞永逸地解決夾有空白問題,可以改寫如下:

set DATE1=%DATE:~5,2%%DATE:~8,2%
set DATE1=%DATE1: =0%

用「冒號 空白 等於 0」 就能把變數裡的空白換成 0而不致有問題了。

##


Posted by emisjerry at 樂多Roodo! │20:41 │作業系統備忘
樂多分類:網路/3C 共同主題:作業系統 工具:編輯本文
Ads by Roodo!