2013-10-02 8 views
14

今日は窓*.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%はあなたに時間を与えます。

dateおよびtime /tのコマンドを使用すると、より詳細な情報が得られる場合があります。

38

のように取得およびフォーマットこれは、あなたDD MM YYYY YY HH Min Sec変数を与えるとPro以降XPから任意のWindowsマシン上で動作します。

@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

これは素晴らしいです、ありがとう! –

関連する問題