DOS
C:\Users\yaozhendong>echo %date:~0,10% %time%
2011/12/24 19:45:41.25
前段時間工作中需要對一個地址做定時PING操作,並將結果輸出到TXT檔案中,為此做了個批處理檔案,用到了獲取系統時間的DOS命令“%date%”“%time%”。下面把具體使用方法記錄如下
檔案內容示例:
“echo %date% %time%>>d:\bmw\ping%date:~0,10%_%time:~0,2%.%time:~3,2%.txt
ping 192.109.190.184 -l 1400 -n 1000>>d:\bmw\ping%date:~0,10%_%time:~0,2%.%time:~3,2%.txt”
“echo %date% %time% ” 輸出當前系統日期 時間
“>> ” 以追加方式寫入">"以覆蓋方式寫入
"d:\bmw\ " 輸出檔案目錄
"ping%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.%time:~3,2%.txt"
輸出檔名
其中:
"%date:~0,10% " 從當前系統日期中第"0"位開始取出"10"位
"%time:~0,2% " 從當前系統時間中第"0"位開始取出"2"位
如果當前時間為:2007-03-09 星期五 15:44:00.73
此時執行就會在d:\bmw\下生成:ping2007-03-09_15.44.txt檔案.
注意:現在有個問題,如果當前時間是:2007-03-09 星期五 5:44:00.73
此時執行就會在d:\bmw\下生成:ping2007-03-09_5:.4:.txt檔案,
顯然這是不可能的,因為":"在檔名中是非法字元,最終結果是:d:\bmw\下生成:ping2007-03-09_檔案.
就是說如果在10:00以前執行這個兩批處理檔案就不會得到我們想要結果,
解決的方法是將"%time:~0,2%.%time:~3,2%"改成"%time:~0,1%.%time:~2,2%"
這樣的10:00以前執行就會生成正確的檔案:ping2007-03-09_5.44.txt
但這樣10:00以後執行就會出錯,解決方法就不說了.