2013-10-02 42 views
14

我需要在Window *.bat文件中獲取今天的日期。之後,我想獲得日,月和年。我怎樣才能做到這一點?
我無法使用PowerShell如何在BAT文件中獲取日期

+1

就帶[迴音%日期%]或[回聲%日期%>>「的test.txt」]用於保存在一個新的文本文件中的日期 –

+1

@MehdiBugnard看來,這不是用戶的輸出,但在另一批處理中使用它... – Wolf

回答

12

你得到和格式這樣

for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
    set dow=%%i 
    set month=%%j 
    set day=%%k 
    set year=%%l 
) 
set datestr=%month%_%day%_%year% 
echo datestr is %datestr% 
+10

這取決於計算機上的區域設置。如果它工作的很好,但它不是一個可靠的方法。 – foxidrive

+0

您應該更好地補充說明您的解決方案適用於英語語言環境。特別是在我的情況下,日期是以下'01.12.2015',所以這個解決方案可能有幫助(這很好),但它的價值是有限的。明確限制,我想你可能會得到更多的讚揚。 – Wolf

+0

@Wolf有許多不同的英文語言環境,有AU,UK,US等不同的日期格式... –

15

%date%會給你日期。

%time%會給你時間。

datetime /t命令可能會給你更多的細節。

38

這會給你DD MM YYYY YY HH Min Sec變量和任何Windows機器上工作,從XP專業版及更高版本。

@echo off 
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" 
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" 

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%" 
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%" 
echo datestamp: "%datestamp%" 
echo timestamp: "%timestamp%" 
echo fullstamp: "%fullstamp%" 
pause 
+0

我永遠不會期望在這裏找到這樣一個有用的工具:[WMIC](https ://technet.microsoft.com/en-us/library/bb742610.aspx#EDAA) - 感謝您的介紹:-) – Wolf

+0

這是輝煌的,謝謝! –