2016年7月22日金曜日

BAT バッチファイルで今日の日付を取得

Windowsのバッチファイルで今日の日付を取得する方法。 Windows XPから8.1の環境だと、%DATE%という変数で今日の日付がYYYY/MM/DD形式で取得できる。
C:> echo %DATE%
2016/07/20
たとえばバッチファイル中で今日の日付のファイル名やフォルダを作りたいときはYYYYMMDD形式のほうが望ましいため、以下のように整形をすることができる。
C:> set TODAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
C:> echo %TODAY%
20160720
今はもう使う機会もほとんどないが、Windows 2000以前だと%DATE%の書式が違っており同じ値を取得するには以下のようにする。
set TODAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
どの環境でもYYYYMMDD形式で取得できるようにするには次のようにOSのバージョンで場合分けする。
for /f "tokens=1-3" %%i in ('ver') do set OSVER=%%k
if "%OSVER%"=="2000" (
    set TODAY=%date:~2,4%%date:~7,2%%date:~10,2%
) else (
    set TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
)

0 件のコメント:

コメントを投稿