Windows10 | ファイルの連番に付く括弧を削除する
Windowsのファイル操作で同名のファイルがあった場合に連番が付与されますが「ファイル名(1).jpg」「ファイル名(2).jpg」のように括弧で括られた連番ファイル名となっています。
Windowsの設定から、この連番付与の方式を変更することはできませんので括弧なしでの連番ファイル名が必要な場合、手作業やリネーム系のアプリで振り直しているひとも少なくないと思います。
自分も長年、この括弧付き連番には面倒な思いをしてきていましたが、いつぞやちょっと調べてみたらバッチファイルでリネームする方法を紹介されている記事を見つけて解決しました。
一括リネームした括弧付き連番ファイル名から括弧を削除する | 誰かの役に立つかもしれない実験メモ
上記リンク先の記事内容そのままの方法になりますが、紹介させていただきます。
バッチファイルと聞いて、ちょっと手を出しにくいイメージもありましたが、特にトラブルも躓くこともなくすんなり実装できましたのでオススメの方法です。
ファイル名の括弧を削除するバッチファイルを作成
メモ帳などのテキストエディタにてテキストファイルを作成します。
echo off
for %%f in ( * ) do call :sub "%%f"
exit /b
:sub
set fname=%1
set fname=%fname: (=_%
set fname=%fname:(=_%
set fname=%fname:)=%
ren %1 %fname%
goto :EOF
バッチファイルの名前と拡張子、保存先
保存するファイル名の拡張子は「.bat」にします。
ファイル名がコンテキストメニューに表示されますのでわかりやすいものが良いでしょう。
私は「ファイル名の括弧削除.bat」としています。
ファイルの保存先は「SendTo」というコンテキストメニューの「送る」コマンドの場所になります。
C:\Users\user_name\AppData\Roaming\Microsoft\Windows\SendTo
保存時でもエクスプローラーのアドレスに「shell:sendto」や「sendto」と入力すればアクセス可能です。
バッチファイルの動作確認
適当にWindowsにて自動で振られた連番ファイルを作成して、バッチファイルを適用して動作確認をします。
ここではデスクトップ上で右クリックメニューから「新規作成」ー「テキスト ドキュメント」を使って「新しいテキスト ドキュメント」を複数作成してみます。
作成した「新しいテキスト ドキュメント」をドラッグして一括選択します。
複数選択したいずれかのファイル上で右クリックしてコンテキストメニューから「送る」を表示、「作成したバッチファイル名」、この記事では「ファイル名の括弧削除.bat」がリストにありますので選択します。
選択すると、連番から括弧が取り除かれたファイル名にリネームされました。
連結記号をアンダーバー以外にする
バッチファイルのコードにて7行目と8行目のアンダーバーを変更することで括弧の代わりに付与されているファイル名と連番の連結文字(記号)を変更できます。
echo off
for %%f in ( * ) do call :sub "%%f"
exit /b
:sub
set fname=%1
set fname=%fname: (=-%
set fname=%fname:(=-%
set fname=%fname:)=%
ren %1 %fname%
goto :EOF
ハイフンや、「ファイル名2.txt」など記号なしも問題なく機能しました。
コード作成者さんが、わかりやすいようにシンプルに書いていただいている感じですので、少し書き足せばバッチファイル素人の私レベルでも連番で1付きのリネームや、0埋めくらいなら編集できそうですね。
ディスカッション
こんにちは。画期的な方法に驚きです。ただ、ファイルの保存先は「SendTo」と打っても自動的にデスクトップやドキュメントのどちらかに保存され、「送る」から作成したbatを表示されません。
この場合は、どうやったらよろしいのでしょうか?
こんにちわ、コメントありがとうございます。
ファイルは「SendTo」フォルダー内に置く必要がありますが、もし保存時に出てこないのであれば、エクスプローラーで開いてファイルを移動させてみるのはどうでしょうか?
ご回答ありがとうございます。試してみます