獲取系統時間的DOS命令

隨夢而飛發表於2017-07-08

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以後執行就會出錯,解決方法就不說了.

相關文章