ファイル名の連番を
括弧なしに一括変更する方法
Windowsで複数のファイルを選択してリネーム(名前を変更)すると、「ファイル名 (1).txt」「ファイル名 (2).txt」...といった形式のファイル名になりますよね。
でも、この連番形式。
「括弧」や「半角スペース」を取りたい時ってありませんか?
こういったファイル名の一括変更は、フリーソフトを使うか、自分でバッチファイルを作って対応する、といった方法があります。
フリーソフトを探して使うのもいいですが、おすすめなのはバッチ対応。
バッチファイルと聞くと何やら身構えてしまいますが、必要なのはPCにデフォルトで入っているメモ帳アプリか、テキストエディタだけ。
コピペでOKなので、爆速・カンタン・容量も取りません。
早速、見ていきましょう!
今回のバッチコードはこちらの記事を参考にさせて頂いています。
「ファイル名_連番」に
一括変更
まずは、「ファイル名 (連番)」といったデフォルト形式から、「括弧・半角スペース」を消してアンダーバーを入れる記述を例に、手順を見ていきましょう!
「ファイル名 (連番).txt」という形式を、「ファイル名_連番.txt」という形式に変更できます。
手順はこちら!
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
《1》上記バッチコードをメモ帳などにコピペして、ファイルメニューの「名前をつけて保存」をクリック。
《2》「保存先」欄にあるフォルダアイコンをクリックして、テキストエリアに「shell:sendto」と入力して「Enter」。
©Microsoft
すると、自動的に「C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\SendTo」という場所に移動します。
※Window8.1環境。
《3》ファイル名は内容が分かればよいので、ここでは「連番アンダーバー.bat」として「保存」します。
この時、「エンコード」欄には「Shift-JIS(シフトJIS)」を指定します。メモ帳だと「文字コード:ANSI」ですね。
これはバッチを実行するコマンドプロンプトの標準文字コードが「Shift-JIS」のため。
うっかり「UTF-8」で作成すると日本語のファイル名などは文字化けして扱えませんが、こうする事で文字化けせずに扱う事ができるようになります(機種依存文字は対象外)。
ファイルを保存できたら準備OK!
一括リネームしたいファイルを1つのフォルダにまとめておき、1つまたは全てのファイルを選択した状態で、右クリック。
「送る」にカーソルを合わせて「連番アンダーバー.bat」をクリック!
©Microsoft,Kuro.
これで、フォルダ内の全てのデフォルト連番ファイルを「ファイル名_連番.txt」という形式に一括リネームできます。
「ファイル名-連番」に
一括変更
アンダーバーじゃなくてハイフンがお好みの場合はこちら。
「ファイル名 (連番).txt」→「ファイル名-連番.txt」という形式になります。
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
コピペしたら「名前をつけて保存」をクリック。
「保存先」に「shell:sendto」と入力して「Enter」。
ファイル名はここでは「連番ハイフン.bat」として「保存」。
使う時は、ファイルを選択→右クリック→「送る」にカーソルを合わせる→「連番ハイフン.bat」をクリックで、一括リネームできます。
「ファイル名連番」に
一括変更
アンダーバーもハイフンもいらないぜ、といった場合はこちら。
「ファイル名 (連番).txt」→「ファイル名連番.txt」という形式になります。
ファイル名によっては可読性が落ちますが、純粋な連番のファイル名にしたい時などにはベンリな形式です。
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
コピペしたら「名前をつけて保存」をクリック。
「保存先」に「shell:sendto」と入力して「Enter」。
ファイル名はここでは「連番シンプル.bat」として「保存」。
使う時は、ファイルを選択→右クリック→「送る」にカーソルを合わせる→「連番シンプル.bat」をクリックで、一括リネームできます。
「ファイル名[連番]」に
一括変更
「 (連番)」ではなくて「[連番]」形式にしたい、といった場合はこちら。
「()」前の半角スペースを消して、「()」を「[]」に変更しています。
「ファイル名 (連番).txt」→「ファイル名[連番].txt」という形式になります。
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
コピペしたら「名前をつけて保存」をクリック。
「保存先」に「shell:sendto」と入力して「Enter」。
ファイル名はここでは「連番大括弧.bat」として「保存」。
使う時は、ファイルを選択→右クリック→「送る」にカーソルを合わせる→「連番大括弧.bat」をクリックで、一括リネームできます。
「ファイル名【連番】」がいい場合は、「[」部分を「【」に。「]」部分を「】」にすればOKです。
「ファイル名連番」に
固定キーワードをつける
こちらは少し変わり種ですが、ファイル名の連番の後ろに「共通のキーワード」を入れたい場合の記述です。
今回はこれを実現したくて、バッチ実装に乗り出しました。
「ファイル名 (連番).txt」→「ファイル名連番-Keyword.txt」という形式になります。
echo off
for %%f in ( * ) do call :sub "%%f"
exit /b
:sub
set fname=%1
set fname=%fname: (=%
set fname=%fname:(=%
set fname=%fname:)=-Keyword%
ren %1 %fname%
goto :EOF
コピペしたら「名前をつけて保存」をクリック。
「-Keyword」部分を、お好みのテキストに変更してくださいね!
「保存先」に「shell:sendto」と入力して「Enter」。
ファイル名はここでは「連番キーワード.bat」として「保存」。
使う時は、ファイルを選択→右クリック→「送る」にカーソルを合わせる→「連番キーワード.bat」をクリックで、一括リネームできます。
バッチを確認・削除するには
バッチを保存する時、保存先に「shell:sendto」を指定しましたが、このフォルダは何処にあるのでしょうか?
バッチを確認したい時や削除したい時に、覚えておくと安心ですよね!
「sendto」フォルダを開きたい時は、「ファイル検索」や「ディレクトリ指定」が簡単です。
ファイル検索で開く場合は、パソコンの「F3」キーを押して、検索欄に「shell:sendto」と入力。
すると候補としてフォルダの保存場所が出てくるので、クリックすれば一瞬で開くことができます。
©Microsoft
ディレクトリ指定する場合は、何でもいいのでフォルダを開いて、フォルダアイコンをクリック。
入力欄に「shell:sendto」と入力して「Enter」を押します。こちらも一瞬で開くことができます。
©Microsoft
ちなみに、今回作成したバッチファイルは、右クリックして「編集(E)」を選択するとメモ帳アプリで開く事ができます。
テキストエディタによっては、エディタ画面にドラッグ・アンド・ドロップすると開けるものもあるので、バッチを編集したい時は試してみましょう。
また、拡張子「.bat」を「.txt」に変更すると、普通にテキストエディタで中身を確認・編集できます。
バッチとして使う時は、ふたたび拡張子を「.bat」に戻せばOKです。
ファイル名の連番を
括弧なしに一括変更する方法・余談
ここまで、「ファイル名 (連番).txt」形式のファイル名を、「括弧・半角スペースなし」に一括変更する方法を見てきました。
バッチ対応は、やる前は「なんか難しそう?」と身構えていましたが、やってみると意外と簡単!
複数のバッチを作成するとメニューのように表示されるので、よく使う形式をいくつか作っておくのもベンリです。
使わなくなった時も、ファイル検索やディレクトリ入力で保存フォルダ(SendTo)を開き、バッチファイルを削除するだけ。
大量の連番ファイル名を一括変更したい時は、さくっとコピペで時短しちゃいましょう!