ファイルのバックアップやログの保存時、「ファイル名に日付を付けて管理したい」と思ったことはありませんか? 手作業で日付を入力するのは面倒ですし、入力ミスのリスクもあります。
この記事では、バッチファイルを使ってファイル名に日付を自動付与する方法を解説します。 初心者の方でもすぐに実践できるよう、手順を丁寧に説明していきます。
日付付与の基本的な使い方#
バッチファイルを使った日付付与は、とてもシンプルな手順で実行できます:
-
日付を付与したいファイルを選択
-
作成したバッチファイルにドラッグ&ドロップ
-
自動で日付付きファイルが作成される
それでは、このバッチファイルの作り方を詳しく解説していきます。
バッチファイルの作成手順#
メモ帳でバッチファイルを作成#
Windowsのメモ帳を起動します。
ファイル名の後ろに日付を付与するコード#
以下のコードをメモ帳に貼り付けます:
@echo off
setlocal enabledelayedexpansion
rem ----------------------------------------
rem 現在の日付を「YYYYMMDD」形式で取得
rem 例:20240611
rem ----------------------------------------
set TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
rem ----------------------------------------
rem フォルダ内のすべてのtxtファイルを処理
rem 例:report.txt → report_20240611.txt
rem ----------------------------------------
for %%F in (*.txt) do (
rem ファイル名(拡張子なし)を取得
set FNAME=%%~nF
rem 拡張子を取得(.txtなど)
set EXT=%%~xF
rem 日付を付与してファイルをコピー
copy "%%F" "!FNAME!_!TODAY!!EXT!"
rem 処理結果を表示
echo !FNAME!_!TODAY!!EXT! を作成しました。
)
pause
バッチファイルの保存方法#
Ctrl + Shift + S
で「名前を付けて保存」を開く- ファイル名を「add_date.bat」として保存
- 拡張子は必ず
.bat
にしてください
- 拡張子は必ず
- 保存をクリック
応用:ファイル名の前に日付をつける#
ファイル名の前に日付を付与したい場合(例:report.txt
→ 20240611_report.txt
)は、以下のコードを使用します:
@echo off
setlocal enabledelayedexpansion
rem ----------------------------------------
rem 現在の日付を「YYYYMMDD」形式で取得
rem 例:20240611
rem ----------------------------------------
set TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
rem ----------------------------------------
rem フォルダ内のすべてのtxtファイルを処理
rem 例:report.txt → 20240611_report.txt
rem ----------------------------------------
for %%F in (*.txt) do (
rem ファイル名(拡張子なし)を取得
set FNAME=%%~nF
rem 拡張子を取得(.txtなど)
set EXT=%%~xF
rem 日付をファイル名の前に付与してコピー
copy "%%F" "!TODAY!_!FNAME!!EXT!"
rem 処理結果を表示
echo !TODAY!_!FNAME!!EXT! を作成しました。
)
pause
まとめ#
バッチファイルを使ったファイル名への日付付与について説明しました:
- 手作業の自動化で作業効率アップ
- 入力ミスのリスクを削減
- 柔軟なカスタマイズが可能
よくある質問・トラブルシューティング#
バッチファイルが動作しない場合
ファイルの拡張子が正しく.bat
になっているか確認してください。また、文字コードはANSIで保存されているか確認してください。
日付の形式を変更したい場合
コード内の%date:~0,4%%date:~5,2%%date:~8,2%
の部分を修正することで、日付の形式を変更できます。例えば、月日のみにする場合は%date:~5,2%%date:~8,2%
とします。
特定の拡張子のファイルのみ処理したい場合
コード内の*.txt
を目的の拡張子(例:*.docx
)に変更することで、対象ファイルを限定できます。
関連する記事:
より詳しい情報や最新の自動化テクニックはさかいブログをご覧ください。