こんばんは、ご存じの方も多いかと思いますが、Windowsのフォルダ名やファイル名には、/(スラッシュ)がついていると保存が出来ません。
今回はスラッシュなしで西暦年月日を表示するコマンドを紹介します。
dateコマンド スラッシュなし日付
Windowsフォルダの命名規則として/ (スラッシュ)は入力が出来ないようになっています。禁止文字列を入力すると下記のようにエラーメッセージが表示されます。
- ¥ (エン)
- / (スラッシュ)
- : (コロン)
- * (アスタリスク)
- ? (クエスチョン)
- ” (ダブルクウォーテーション)
- < (左かっこ)
- > (右かっこ)
- | (パイプ)
バッチファイルやコマンドで西暦年月日をフォルダ名に付与したい場合は、スラッシュを抜いた形で保存しなければいけません。
※フォルダ名やファイル名は全角文字であれば保存することが出来ます。
下記のように、バッチファイルやコマンドプロンプトのフォルダ作成コマンドで mkdir %date% を打つと下記のように”コマンドの構文が誤っています。” と表示されます。
C:\>mkdir %date%
コマンドの構文が誤っています。
mkdir %date%はYYYY/MM/DDフォルダを作成の命令の為、Windows禁止文字列のスラッシュを使っているので作成拒否されています。
下記のように、日付を表示するコマンドで echo %date% と打つと2020/09/02と/(スラッシュ)つきの西暦8桁が表示されます
C:\>echo %date%
2020/09/02
バッチファイルなどを利用しシステムのバックアップなどでフォルダ名の先頭に日付をつけたい時もあるかと思います。ですが普通に作成しようとするとエラーになるので、ひと工夫が必要です。
コマンド date / (スラッシュなし) 表示方法
西暦8桁日付 /(スラッシュなし)の表示方法が下記になります。%date%の文字列から年月日をそれぞれ抽出しています。
set YYYY=%date:~0,4%
set MM=%date:~5,2%
set DD=%date:~8,2%
echo %YYYY%%MM%%DD%
20200902
コマンド解説
バッチファイルやコマンドプロンプトでの文字の数え方は先頭は0(ゼロ)からスタートになります。
- set YYYY=%date:~0,4% は先頭0文字目から4文字を抽出し変数YYYYにセット
- set MM=%date:~5,2% は先頭5文字目から2文字を抽出し変数MMにセット
- set DD=%date:~8,2% は先頭8文字目から2文字を抽出し変数DDにセット
- 最後にセットしたYYYY(年)、MM(月)、DD(日)を結合させてecho %YYYY%%MM%%DD%で20200902の表示になります。
まとめ dateコマンド スラッシュなし表示させる方法
- フォルダ作成の禁止文字は \ * ” / <> | ? です。
- mkdir %date% では保存できない
- dateはスラッシュを抜いて抽出するコマンドがある
- バッチファイル作成時にファイル名に日付付与が出来る
更にタスクスケジューラーを使用してバッチファイルを起動させれば簡易自動バックアップタスクの完成です。それではー!
良ければ過去記事も見てみてください↓