PC便利術

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

一年ほど前に公開した日付追加バッチの改良版を作成しました!

【日付追加バッチ】ファイル・フォルダ名に日付を追加する方法 ファイルに日付をつける時、1つ1つ手入力していませんか? 今回はドラッグ&ドロップだけで、今日の日付をつける方法を紹介し...

今回はバッチを追加するだけではなく、古い日付を更新します

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

さかい

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

実際にやってみる

日付がついているファイルをドラッグ&ドロップすると、今日の日付に更新されます

もし日付がついていない場合は、今日の日付が追加されます

次はこのバッチファイルの作り方を解説していきます

batファイル作成手順

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

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

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

@echo off
setlocal enabledelayedexpansion
:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF
rem /を削除し、日付を設定
set "Today=%DATE:/=%"
rem ファイル名を取得
set "FileName=%~n1"
rem ファイル名先頭の6桁が日付かチェック(290000未満、200000より大きい)
if "!FileName:~0,6!" lss "290000" (
    if "!FileName:~0,6!" gtr "200000" (
    rem 日付を削除
        set "FileName=!FileName:~6!"
    )
)
rem ファイル名先頭がアンダーバーの場合は削除
if "!FileName:~0,1!"=="_" set "FileName=!FileName:~1!"
rem ファイル名先頭に日付を追加
set "NewFileName=!Today:~2,8!_!FileName!%~x1"
rem ファイル名を変更
ren "%~1" "!NewFileName!"
rem 次のファイルに移動
shift
goto LOOP
:EOF
endlocal

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

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

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

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

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

5. 完成

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

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

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

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

後ろに日付をつける場合は、こちらのコードを試してみてください!

@echo off
setlocal enabledelayedexpansion
:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF
rem /を削除し、日付を設定
set "Today=%DATE:/=%"
rem ファイル名を取得
set "FileName=%~n1"
rem 6桁の日付が後ろにあるかチェックして削除
if "!FileName:~-6!" lss "290000" (
    if "!FileName:~-6!" gtr "200000" (
        set "FileName=!FileName:~0,-6!"
    )
)
rem ファイル名末尾がアンダーバーの場合は削除
if "!FileName:~-1!"=="_" set "FileName=!FileName:~0,-1!"
rem ファイル名末尾に日付を追加
set "NewFileName=!FileName!_!Today:~2,8!%~x1"
rem ファイル名を変更
ren "%~1" "!NewFileName!"
rem 次のファイルに移動
shift
goto LOOP
:EOF
endlocal

まとめ

いかかでしたか。

日付を追加するバッチをかなり多くの人に使っていただいて

「時短になった!」や「紹介してくれてありがとう!」など嬉しい言葉をたくさん頂きました!

今回は日付を更新する機能が欲しいという要望があり実装してみました。

もし、みてくださった人の時短につながったら嬉しいです