dateコマンドについて
dateコマンドを利用してフォルダ名/ファイル名を作成するbatchを作成したことは誰しもあると思います。ぐぐればすぐ出てきますしね。
簡単に備忘録としてまとめてみます。
echo date
実行結果
2019/02/26
dateコマンドは当日の日付けをyyyy/mm/ddで返すコマンド。
ファイル名やディレクトリ名にするには、/を除く必要がある。
2通りの簡単な方法があったため、メモ。
1. %date:/=%
おそらくこれが一番シンプルで簡単な例
echo.bat
set yyyymmdd=%date:/=%
echo %yyyymmdd%
実行結果
20190226
「/=」で「/」を文字なしに変換している。
例えば、set yyyymmdd=%date:/=#%とすると、
実行結果は2019#02#26となる。
2. %date:~0,4%%date:~5,2%%date:~8,2%
1.と比較して多少ややこしいが、これはこれで応用が利きそう。
echo.bat
set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2%
echo %yyyymmdd%
実行結果
20190226
「%変数:~x,y% 」変数のx文字目からy文字分を抽出。
x文字目は含まれないことがポイントかも。
実行例
よくあるテンプレートだが、一応。
日付フォルダの有無をチェックし、ない場合は作成するバッチ。
mkdir.bat
@echo off
rem - 日付フォルダの有無をチェックし、ない場合作成する
set yyyymmdd=%date:/=%
set base_path=C:\Users\####\Desktop
if not exist %base_path%\%yyyymmdd% (
mkdir %base_path%\%yyyymmdd%
)