2013-02-11 235 views
50

我需要在批處理文件中以YYYYMMDD格式獲取日期。在Windows批處理文件中以YYYYMMDD格式獲取日期

我做這個使用:

set mydate=%date:~6,4%%date:~3,2%%date:~0,2% 
echo %mydate% 

我需要它是整個系統保持一致,甚至在改變時間設置。

請指教。

+0

您可以參考[this] [1]鏈接瞭解更多信息。 [1]:http://stackoverflow.com/questions/14427490/how-to-set-date-from-cmd-after-retrieving-it/14435810#14435810 – Dale 2013-02-11 12:36:04

+0

回波%日期:〜4 ,2% - %日期:〜7,2% - %日期:〜10,4% – 2017-10-07 08:32:02

回答

0

你可以試試這個!這應該在Windows機器上工作。

for /F "usebackq tokens=1,2,3 delims=-" %%I IN (`echo %date%`) do echo "%%I" "%%J" "%%K" 
+1

不是,分隔符爲'/'時。對於區域獨立方法,請參閱:http://stackoverflow.com/questions/203090/how-to-get-current-datetime-on-windows-command-line-in-a-suitable-format-for-us – 2015-01-06 10:06:17

+0

錯誤: 「%%我在這個時候是意外的。」 – 2016-03-03 12:34:44

+0

%% vs%one批處理文件另一個用於命令行 – 2016-04-06 21:23:01

22

如果在閱讀其他問題並查看評論部分中提到的鏈接後,仍然無法弄清楚,請繼續閱讀。

首先,你要錯的地方是偏移量。

應該看起來更像這個...

set mydate=!date:~10,4!!date:~6,2!/!date:~4,2! 
echo %mydate% 

如果日期是Tue 12/02/2013那麼它會顯示爲2013/02/12。要刪除斜線,代碼看起來更像set mydate=!date:~10,4!!date:~7,2!!date:~4,2!,它會輸出20130212,這看起來不像日期。

並提示未來要做,如果mydate等於類似!date:~10,4!!date:~7,2!之類的東西,您可能已經忘了波浪號(〜)。

+3

偏移不一定是錯誤的:這一切都取決於您當前的日期/時間區域設置。 在我的電腦上,%date%給出了Sun 04/26/2014。 有沒有安全的方式,我可以想到它會這樣安全 – 2014-04-26 08:53:37

+5

感嘆號!在DOS中似乎沒有工作? – 2014-11-25 18:12:27

+2

DOS中的感嘆號失敗,請用百分號替換它。這對我來說無所不在。 – 2016-06-10 02:55:09

相關問題