この記事のハイライト
バッチ処理により、「議事録.docx」のファイル名の末尾に「_山田修正」をつけたり、「+鈴木承認」をつけたりしています。
どんどんファイル名が長くなる様、体感いただけましたか?これで良いんです。
背景
古き良きJTC(Japanese Traditional Company)ならではのことですが、ファイル名の末尾に修正者の名前や承認者の名前を入れる作法があります。
例として、以下のようなファイル名を考えてみましょう。
- 「議事録_山田修正+鈴木承認.docx」
… はい、正直ダサい。
課題
この管理方法は、いくつかの点で不便です。
- ファイル名を変更する手間
- 拡張子を消し飛ばすリスク
- どれが最新ファイルか不明
これら課題があるにもかかわらず、今日も全社員がファイル名の手動変更をしています。
皆さんも感じるでしょう。JTCが求めるのはキラキラとした斬新なDXシステム。地味で現場で役立つツールの導入は不可能です。
そんな中、私は小さな革命を起こしました。
ソリューション
自動で修正者名を追加する、超簡単なバッチファイル!
使用方法
以下のコードをメモ帳やエディタにコピーして、ANSI形式で保存します。
ファイル名は「AddEnd(_山田修正).bat」とします。括弧内部の文字列をプログラムで読み込んでいます。名前やセパレーターは自分の好きなものに変更してね。
あとは、冒頭のGif動画の通りです。
- ドラッグ&ドロップで即座に名前追加!
- 複数ファイルも、フォルダ名も、一瞬で変更!
バッチファイルのコード
ファイル名の末尾に追記するバッチファイルのコードは以下の通りです。
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
rem get the inside of ()
set "Addition=%~n0"
set "Addition=%Addition:~7,-1%"
:LOOP
rem Exit if no filename is provided
if "%~nx1" == "" goto EOF
set "FileName=%~n1"
rem Add to the end of the filename
set "NewFileName=!FileName!!Addition!%~x1"
rem Rename the file
ren "%~1" "!NewFileName!"
rem Move to the next file
shift
goto LOOP
:EOF
endlocal
最後に
やっと名前の手打ち作業から解放されますね!なお、特殊な文字環境やお行儀の悪いファイル名は考慮していません。
バージョン管理を日付追記で行っている方には、こちらの記事もどうぞ。
JTC作法!もう日付を手打ちしない!バッチファイルでファイル名を簡単付与