ファイルに日付をつける時、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
区切り点を追加
以下のコードでは、20231012を2023.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
まとめ
いかかでしたか。
日付をファイル(フォルダ)名につけると、資料のバージョン管理がしやすいです
その時は今回紹介したバッチファイルを使うと、手入力せずに
日付を追加することができます
メモ帳だけで手軽に作れるので、ぜひ試してみてください!