Help us understand the problem. What is going on with this article?

【備忘録】[batch] dateの値をファイル名に利用

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%
)


Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away