目次
「YYYY/MM/DD」を「YYYYMMDD」へ変更する
変数「date」には現在の日付が入っていて、「%date%」とすることでその値を取り出せます。しかし、この表示は「YYYY/MM/DD」の形で格納されており、ファイル名やフォルダ名には使用できない文字「/」が含まれています。
以下、変数「date」の中身を表示させた例です。
そこで、まずは日付フォーマットを「YYYY/MM/DD」から「YYYYMMDD」へ変更するバッチファイルプログラムを次節で紹介します。
変換例: 2017/06/28 → 20170628
数字部分を切り取る
変換方法は文字列「YYYY/MM/DD」からそれぞれ「YYYY」、「MM」、「DD」の数字の部分だけを切り取ってきて、再び繋ぎ合わせるというやり方です。
まず、それぞれ「YYYY」、「MM」、「DD」を切り出すバッチファイル(kiridasi.bat)は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@echo off rem 「date」の確認 echo date=%date% rem 「date」から切り出した数字をそれぞれ変数に代入 set YYYY=%date:~0,4% set MM=%date:~5,2% set DD=%date:~8,2% rem 切り出した数字の表示 echo 年=%YYYY% echo 月=%MM% echo 日=%DD% |
4行目で変数「date」の確認をしています。
7行目から9行目で、変数「date」から必要な部分だけを切り取り、それぞれ年「YYYY」、月「MM」、日「DD」に代入しています。文字列の切り取りの基本は以下のような形式で書きます。
1 |
%[変数]:~[飛ばす文字数],[切り取る文字数]% |
例えば、7行目の「YYYY」であれば、0文字飛ばし(つまり何も飛ばさず初めの文字から)、1文字目から4文字分を切り取るという指示になっています。文字列の切り取りについては、「文字列を自在に切り取る -やりたいことから検索-」に詳しく解説しています。
12行目以下で切り取った文字列を表示して確認を行っています。
以下、実行結果です。
文字列を繋げる
最後に、それぞれ切り取った文字列を繋げて「YYYYMMDD」形式にします。
前節で作ったバッチファイル「kiridasi.bat」を改良しましょう。…といっても、最後に変数「YYYYY」、「MM」、「DD」を繋げる一文を書けば終了です。
以下に、最終的なバッチファイル(new_date.bat)を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@echo off rem 「date」の確認 echo date=%date% rem 「date」から切り出した数字をそれぞれ変数に代入 set YYYY=%date:~0,4% set MM=%date:~5,2% set DD=%date:~8,2% rem 切り出した数字の表示 echo 年=%YYYY% echo 月=%MM% echo 日=%DD% rem 最後に文字列を繋げる set new_date=%YYYY%%MM%%DD% echo 新しい日付=%new_date% |
17行目で文字列を繋げて、変数「new_date」に「YYYYMMDD」を代入しています。以上で完成です。
以下、このバッチファイルを実行した結果です。