« OpenSSL コマンドでオレオレ SSL サーバ証明書を作成 | トップページ | Solaris でプロセスが使っているポートを調べる »

バッチファイルで日付をYYYMMDDなどの形式に変換する方法(前日の日付を得る方法など)

バッチファイルで日付をYYYMMDDなどの形式に変換する方法(前日の日付を得る方法など)

バッチファイルで日時を YYYYMMDD や YYYYMMDD hhmmss などのフォーマットに形式変換する方法になります。また、バッチファイルでよく利用する前日の日付を得る方法も記載しました。

YYYY/MM/DD hh:mm:ss形式

> set date1=%DATE:~0,10% %TIME:~0,8%
> echo %date1%
2007/12/08 11:30:21

YYYYMMDD形式

> SET TIMESTAMP=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
> echo %TIMESTAMP%
20071208

YYYYMMDDhhmmss 形式

> SET TIMESTAMP=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
> echo %TIMESTAMP%
20071208113021

前日の日付を取得するバッチの例

@echo off

set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%

set /a dd=1%dd%-101
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4

if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)

set dirname=c:\%yy%-%mm%
set filename=%yy%-%mm%-%dd%.log

IF EXIST %dirname% GOTO FILECHECK
md %dirname%

IF EXIST %filename% GOTO END

cd %dirname%
c:\bin\wget https://www.example.jp/pub/%filename% -O %dirname%\%filename%

:END


« OpenSSL コマンドでオレオレ SSL サーバ証明書を作成 | トップページ | Solaris でプロセスが使っているポートを調べる »

Windows」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/503138/17308105

この記事へのトラックバック一覧です: バッチファイルで日付をYYYMMDDなどの形式に変換する方法(前日の日付を得る方法など):

« OpenSSL コマンドでオレオレ SSL サーバ証明書を作成 | トップページ | Solaris でプロセスが使っているポートを調べる »

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索