PC便利術

【日付追加バッチ】ファイル・フォルダ名に日付を追加する方法

ファイルに日付をつける時、1つ1つ手入力していませんか?

今回はドラッグ&ドロップだけで、今日の日付をつける方法を紹介します!

メモ帳だけあれば作れるので、誰でもすぐに作ることができます。

さかい

はじめまして、さかいと申します。
インスタで『自動化オタクの仕事術』を紹介している自分が解説させていただきます!

実際にやってみる

実際にどのように日付が追加できるか写真で見ていきましょう

1. ファイル(フォルダ)を用意

2. ファイルをbatファイルにドラッグ&ドロップ

複数のファイルをまとめてドラッグ

すると… 先頭に日付が追加されました!

今日の日付が自動的に追加されます。

次はこの「日付追加.bat」の作り方を解説していきます

batファイル作成手順

bat(バッチ)ファイルとは特殊な処理ができるファイルのことです。

今回はファイル(フォルダ)名の先頭に日付を追加する
バッチファイルを作成していきます

1.メモ帳を用意

2. 以下のコードをメモ帳に貼り付け

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%V%_%~nx1"

rem 次のファイルに移動
shift

goto LOOP

:EOF

3. 名前を付けて保存を開く

※ショートカット
Ctrl + Shift + S

4. ファイル名を変更し保存

①「.」の後ろを「bat」に変更します
「日付追加」の名前はなんでも大丈夫です

②文字コードを「ANSI」に変更します

5. 完成

ファイルのアイコンが歯車マークに変わっていればOKです

あとは先ほど紹介したように

ファイル(フォルダ)をバッチファイルにドラッグ&ドロップすると
先頭に日付が追加されます

後ろに日付をつけたい場合

先ほどは先頭に日付をつけるバッチを作成しました。

現場によっては後ろにつけるルールもあると思います

そのときは以下のコードを同じように貼り付けて、バッチファイルを作ってみてください

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=%

rem 末尾に日付をつけてリネーム
ren "%~nx1" "%~n1_%V%%~x1"

rem 次のファイルに移動
shift

goto LOOP

:EOF

このようなファイル名になります

日付のアレンジ

日付について以下のアレンジをすることができます

職場のルールなどに合わせて、修正してみてください

年月(yyyymm)を追加

以下のコードでは、年月日ではなく年月のみを追加することができます

取得した日付(yyyymmdd)を先頭から6番目まで抽出することで
年月(yyyymm)を表現しています

ren “%~nx1” “%V:~0,6%_%~nx1″

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%V:~0,6%_%~nx1"

rem 次のファイルに移動
shift

goto LOOP

:EOF

区切り点を追加

以下のコードでは、202310122023.10.12のように
区切り点を追加することができます

%DATE%で日付を取得し、「:/=」スラッシュを置換削除する箇所を
「:/=.」とすることで、区切り点に置換します

set V=%DATE:/=.%

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=.%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%V%_%~nx1"

rem 次のファイルに移動
shift

goto LOOP

:EOF

時刻を含む日付(yyyymmdd_hhmmss)を追加

以下のコードでは、年月日と時分秒を追加することができます

ファイルの先頭に追加するコードです

@echo off

:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set D=%DATE:/=%

rem :を削除し、時刻を設定
set RETIME=%TIME: =0%
set T=%RETIME:~0,2%%RETIME:~3,2%%RETIME:~6,2%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%D%_%T%_%~nx1"

rem 次のファイルに移動
shift

goto LOOP
:EOF

ファイルの末尾に追加するコードです

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set D=%DATE:/=%

rem :を削除し、時刻を設定
set RETIME=%TIME: =0%
set T=%RETIME:~0,2%%RETIME:~3,2%%RETIME:~6,2%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%~n1_%D%_%T%%~x1"

rem 次のファイルに移動
shift

goto LOOP
:EOF


yymmddを追加(例:240214)

以下のコードでは、年月日の一部を切り取って追加します。
例:2024/02/14 → 240214

ファイルの先頭に追加するコードです

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=%

rem 先頭に日付をつけてリネーム
ren "%~nx1" "%V:~2,8%_%~nx1"

rem 次のファイルに移動
shift

goto LOOP
:EOF

ファイルの末尾に追加するコードです

@echo off
:LOOP

rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF

rem /を削除し、日付を設定
set V=%DATE:/=%

rem 末尾に日付をつけてリネーム
ren "%~nx1" "%~n1_%V:~2,8%%~x1"

rem 次のファイルに移動
shift

goto LOOP
:EOF

まとめ

いかかでしたか。

日付をファイル(フォルダ)名につけると、資料のバージョン管理がしやすいです
その時は今回紹介したバッチファイルを使うと、手入力せずに
日付を追加することができます

メモ帳だけで手軽に作れるので、ぜひ試してみてください!