入門講義13.ファイル名を一括変換する

BASH,bat,バッチ

ファイル名やフォルダー名を変更したい時に一気に変えることはできないかなーってありませんか?

1つ1つなら、まだいいけど10このファイルを変更する時、めんどくさいですよね。

今回は名前を一括変換する方法について、解説します。

この記事が参考になる方

  • 多くのファイルの名前を変えたいと考えている方
  • ファイル名に【済】など文字を追記したい方

renameの基本の使い方

使うコードはrenameです。renameの使い方ですが、下記のように元のファイル名と変更後のファイル名を空白を入れて書きます。

rename  元のファイル名  変えたいファイル名

これを和訳すると、「元のファイル名を変えたいファイル名に名前を変える」となりますね。

試しに下記のように、「お試し.txt」を「変更後.txt」ファイルに変更します。コマンドプロンプトを開いて、「rename  お試し.txt  変更後.txt」と打ち込みます

このようにコマンドスクリプトでは実行した際、成功もしくは失敗と表示されませんが、ファイル名は無事に変換されています。

この節で学んだこと

・renameコマンドの使い方:rename 変換前ファイル名 変換後のファイル名

・コマンドプロンプトでrenameコマンドを打ち込んで成功した場合は、何も表示されない

renameを実用的に使ってみる

拡張子を変更する方法

次は拡張子のみ変更する方法です。

Excelファイルをcsvファイルに変更する業務が沢山ありました。

そういった時は下記のように曖昧検索と組み合わせることで、いくつものファイルを変更することができます。

rename  *.exlm  *.csv

このように曖昧検索を行えば、複数のファイルを、1度に変更できて便利です。あいまい検索は「*」を使います。テンキーの掛け算のキーです。

たくさんのファイルの名前の共通部分を変える方法

例えば、ファイルリストがあり、名前を変更したい時に便利な方法を紹介します。

元のファイルリストがあります。「りんご」を「バナナ」に変更したいとします。

りんご1.txt

りんご2.txt

りんご3.txt

りんご4.txt

下記のコードのようにあいまい検索の「*」を組み合わせて行います。

rename りんご*.txt バナナ*.txt

下記のとおり名前が変化します。

りんご1.txt→バナナ1.txt

りんご2.txt→バナナ2.txt

りんご3.txt→バナナ3.txt

りんご4.txt→バナナ4.txt

変数を使って、renameを使う

変数を使って、renameを使ってみます。まずは簡単な方法で行い、次に実用的な方法を解説します。

変数については講座〇〇で解説しましたので、参照してください。

下記のようなコードを書いたバッチファイルを用意します。変更するファイル名は「元.txt」とします。

set ui=1234
rename 元.txt %ui%_元.txt

1行目でsetコマンドで変数uiに1234を入れてます。setコマンドについてはこちらの記事を参考に。

2行目の%ui%_元.txtについては、箇条書きで解説します。

  • %ui%は1行目でsetコマンドで設定した変数です。変数を利用する時は%で囲みます。
  • _は文字を付け足します。
  • 上記の変数や文字を合体させて、名前を変換します。

変換する元のファイル名は「元.txt」にします。このコマンドスクリプトの結果はこちら。

元.txtのファイル名が「1234…元.txt」に変換しました。このように変数を設定し、ファイル名に付け足すことができます。

ユーザーに入力してもらい、名前を追記する

先ほどの変数を使った方法から少し応用します。

ユーザーに変更するファイル名を入力してもらいます。

set /pコマンドを使って、下記のコードを使用します。

@echo off
echo 変更後のファイル名を入力してください
set /p ui= 
rename 元.txt %ui%_元.txt

また、変更するファイルをすべて指定する場合はあいまい検索の「*」を使用すれば、可能です。

@echo off
echo 変更後のファイル名を入力してください
set /p ui= 
rename *.txt %ui%_元.txt

コメント

タイトルとURLをコピーしました