AIにコードを書いてもらったら、ちょっとシステム担当みたいになった!
入札関係の作業をしていた。前回のファイルを参照しながら、今回のファイルを更新していく。役所指定書式でファイル名が同じことが多い。例えば「申請書」とか。2年ごとに更新するので、例えば「R7・8年度」の申請書と「R9・10年度」の申請書を同時に開き、比較しながら入力作業を進める。このとき問題になるのは、ファイル名が同じだと同時に開けないことだ。そのため、前回のファイルを 申請書_R7・8 とリネームする。作成する書類は申請書だけではなく、実績書、誓約書、委任状・・・と複数あったので、それぞれのファイルをリネームしなければならない。
これ、繰り返し作業だ。ってことは、自動化できるはず。最近だいぶAIの使い方も慣れてきた私はこう思った。職場で導入しているGeminiに早速問いかける。
「複数のファイルの末尾に _R7・8 ってつけたいんだけど、簡単にできないかな?」
Geminiは「PowerShellでできます」と言い、次のコードをくれた。実行するには、
①メモ帳にコードを貼り付け、名前を付けて保存、ファイル名を「○○.bat」にしてファイルの種類を「すべてのファイル」にしてデスクトップに保存
②リネームしたいファイルが入っているフォルダに作成したファイルをドラッグ&ドロップする
というものだった。
言われた通りにすると、デスクトップに保存したファイルが歯車のアイコンで表示された!バッチファイルか~、なんだかちょっとシステム担当みたい、と少し嬉しくなった。
そしてそのファイルをリネームしたいフォルダに落としてみた。ファイル名が変わった!でも文字化けしている。意味不明の漢字や数字がファイル名に追加されていた。
すぐにフォルダをスクショし、Geminiに投げ返す。修正版のコードが返ってくる。また上記の①②を繰り返し実行する。またダメだ。また画像を送る。
こんな作業を数回繰り返すうちに、とうとうファイル名が希望通りに変わった!
申請書_R7・8
他のファイルも一斉に変わっていた。
成功した!
Geminiは得意げにこう言った。
- 「・(中黒)」の文字化けを完全防止
- 連打して実行しても重複せず、常に1つだけの
_R7・8に自動整理
これで同じフォルダ内のファイルに、同じ末尾の文字を簡単に入れることができる。末尾を「R9・10」など別のものに変えたい場合は、バッチファイルを開いて編集すればいいらしい。
これで末尾一括変換ツール完成!一回の削減時間はわずかかもしれないが、こうした積み重ねが効率化への一歩だ。
でも。コードの編集は少しわかりづらかった。詳しい修正方法は聞いていなかったが、一文字ずつ離れてコードに書かれているようだった。文字化けに対応できたぶん、複雑なコードになっていた。
実際のコード(クリックで開く)
@echo off
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy Bypass -Command "$dot = [char]0x30FB; Get-ChildItem -File -Filter '*.pdf' | ForEach-Object { $clean = $_.BaseName -replace '_R7.*$', ''; $newName = $clean + '_R7' + $dot + '8' + $_.Extension; Rename-Item -LiteralPath $_.FullName -NewName $newName }"
これ、末尾につけたい文字が変わったら、コードの修正がちょっと大変かも・・・。
そして翌日。私はまたGeminiに呼びかける。
「末尾につけたい文字を、ダイアログボックスで聞いてくれないかな?」
(つづく)