コマンドプロンプトでのファイルリネームとワイルドカードの使い方

このQ&Aのポイント
  • コマンドプロンプトを使ってファイルのリネームをする方法について説明します。
  • ファイルの集まりを特定の形式でリネームするために、ワイルドカードを使う方法についても解説します。
  • また、コマンドプロンプトでのワイルドカードの使い方に誤りがある場合の対処法についてもご紹介します。
回答を見る
  • ベストアンサー

コマンドプロンプトのリネームとワイルドカードの使い方

コマンドプロンプトを使ってファイルのリネームをしたいと思っています。 ほげ 第1章ふが.xls ほげ 第2章ふが.xls ... (たまに章が飛ぶこともあります) と続くような、ファイルの集まりなのですが これを (11)×ふが.xls (12)×ふが.xls ... という様にしたいと思っています. Windowsのコマンドプロンプトで ren "ほげ 第*章ふが.xls" "(1*)×ふが.xls" とやったところうまく行きませんでした. また試しに, for %i in [0-9] do dir /b "ほげ 第%i章ふが.xls" で一覧をみようと思ったところ[0-9]の使い方が誤っていますと言われました. dir /b "ほげ 第*章ふが.xls" では問題なく表示されました. リネームのいい方法と[0-9]の正しい使い方を教えてください。

  • higm
  • お礼率33% (1/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.2

0から9までの実行は以下のようにかけると思います。 for /l %i in (0,1,9) do dir /b "ほげ 第%i章ふが.xls" 同様に以下のようにすれば、0から9までをリネームします。 for /l %i in (0,1,9) do ren "ほげ 第%i章ふが.xls" "(1%i)×ふが.xls" BATファイル中に書く場合は以下のように。 for /l %%i in (0,1,9) do ren "ほげ 第%%i章ふが.xls" "(1%%i)×ふが.xls"

higm
質問者

お礼

ありがとうございます。 OMEGATさんのやり方で思う通りに動きました。

その他の回答 (2)

回答No.3

コマンドラインでやるにしても、私だったらPerlかVBSかJAVASCRIPTかそこら辺、使いますけどね。わけの分からないMS-DOSの文法使うよりはなれてた方がよっぽど使い安いですし柔軟なことが出来ますし。

回答No.1

バッチファイルで定期的に処理させたりする必要がないのであれば、GUIの高機能リネームソフトを使った方が簡単ですよ。あまり答えになっているとは思えませんが・・。一応代替案として

higm
質問者

補足

確かにその通りなのですが、いろんなタイプの名前に対してやらなくてはいけなくてしかもその後の処理も一気にやってしまおうと思っているのでこの際コマンドプロンプトでできないかなと思っています。

関連するQ&A

  • コマンド プロンプトでリネーム

    C:\Documents and Settings\aaa\に以下のように複数のファイルがあります。 あああ.xls いいい.xls ううう.xls えええ.xls ・ ・ ・ これを、先頭に"test_"をつけて、コマンドプロンプトを使い以下のように、ren でリネームするにはどのようにすればよいでしょうか? test_あああ.xls test_いいい.xls test_ううう.xls test_えええ.xls ・ ・ ・ よろしくお願いします。

  • コマンドプロンプトでリネーム

    リネーム前  リネーム後 1 aaa.wav → abc.wav 2 bbb.wav → def.wav 3 ccc.wav → ghi.wav このようにリネームしたいのですが、コマンドプロンプトでrenを使用した場合、リネーム前のファイル名にスペースが入っているためうまくリネームすることが出来ませんでした。 良い方法をご存じの方がいらっしゃいましたらご教示願います。 また、良いソフトがあれば合わせて教えていただきたいです。 よろしくお願いいたします。

  • [コマンドプロンプト] dirで見えるのに、renできない

    とても困っていて、質問させていただきます。 コマンドプロンプトでdirを叩くと、ファイル一覧が表示される状態です。 ファイルサイズなども、表示されています。 ところが、リネームしようとすると、 「指定されたファイルがありません」と言われてしまいます。 これらのファイルは、デジカメで撮影した画像で、CFに入っています。 PCでプレビュー、リネーム、ディレクトリ移動ができなかったもので、 コマンドプロンプトから見てみたのですが、 やはりリネームできないようなのです。 対処法をご存じの方、ぜひご教示下さいませ?

  • コマンドプロンプトによるファイル名一括変換

    コマンドプロンプトで、サブディレクトリを含めたファイル名の一括変換 をしたいのですが、次のコマンドを叩いたら、「コマンドの構文が間違っています」と出てしまいました。どこがおかしいのでしょうか? カレントディレクトリの中の「*.txt」ファイルをすべて「*.doc」にしたい場合↓ for /r /d %i in (*) do ren %i\*.txt *.doc よろしくお願いします。

  • 【コマンドプロンプト】複数フォルダのファイル名一括置換の方法について

    【コマンドプロンプト】複数フォルダのファイル名一括置換の方法について お世話になっております。 コマンドプロンプトを使用して、カレントフォルダ配下のすべてのフォルダに格納されているEXCELファイルの名称の最初に[LOCAL]という文字を加えたいと考えています。 ファイル一括置換を行うフリーソフト(ファイル名変換君など)では、可能なのですが、 対象のファイルは、バッチファイルで他のフォルダからファイルをコピーをしてきているため、ファイル名変更もコピーの際に一括でできないかと思い質問をさせていただきました。 現在、同じフォルダに格納されているファイルに対しては、下記にて実行はできています。 for %i in (*.xls) do ren %i [LOCAL]%i しかし、カレントフォルダの配下すべてのフォルダを対象にしたいため、下記のように変更すると、エラーとなってしまいます。 for /r %i in (*.xls) do ren %i [LOCAL]%i おそらく・・・変数%iに、ファイルのフルパスが格納されてしまい、思い通りの動作になっていないと推測しています。 どのように作成すればよいか教えていただけませんでしょうか。 よろしくお願いいたします。

  • コマンドプロンプトでのリネーム

    コマンドプロンプトで下記のようなファイル名をバッチ処理でリネームしたいのですが、どのように書けばよいでしょうか? 日本語名[半角スペース]2010年10月04日.拡張子 ↓ 2010-10-04.拡張子 日付の箇所はそのままの数字を利用したいです。 よろしくお願いいたします。

  • Windows7 コマンドプロンプトについて

    DXFファイル名の変更を行いたいのですが、ある操作を繰り返していく内に下記の様なファイル名となってしまいました。 「*dxf.dwg.dxf」 ファイル名の拡張子を一つにしたく、「*dxf.dwg.dxf」→「.dxf」と変更する為、 コマンドプロンプトの「ren」コマンドを使用し下記の様なコマンドを作成しました。 ren *dxf.dwg.dxf *.dxf しかしファイル名は変わらないままでした。 試しに下記の様なコマンドを入力しました。 ren *.dxf *dwg すると、「dxfファイル」から「dwg」ファイルへとファイルの拡張子だけが変わりました。 何とか余分な「.dxf.dwg」の部分を一つのコマンドラインで簡単に消すことは出来ないでしょうか。 どなたか教えて頂けますでしょうか。 宜しくお願い致します。

  • コマンドプロンプトで

    コマンドプロンプトで dir > list.txt と書いたbatファイルを作成し実行すると、中にあるフォルダ・ファイルの一覧ができますが、中にあるフォルダ名のフォルダ・ファイル名までは取得することができません。 一番下フォルダのファイル名まで取得する方法はありますでしょうか? よろしくお願いします。

  • コマンドプロンプトで.batファイルを作っています。

    古いバックアップディレクトリを削除するバッチファイルを作りたいです。 cd /d e:\fileDir REM:【最終のディレクトリを削除】 for /F %F in ('dir /b /o:-d') do set fname=%F rmdir /s /q %fname%  をコマンドプロンプト画面に貼り付ければ上手く動作しますが*.batと名前を付けて保存したものをダブルクリックでは全く動作しません。  コマンドプロンプト上で実行するのとバッチファイルで実行することの違いについて調べてみましたがなかなか動作するものになりません。  どなたかご教示いただけないでしょうか    

  • windows10 DOSコマンドのワイルドカード

    以前のwindowsコマンドプロンプトでは、DOSコマンドで同一フォルダのファイルの名前をまとめて変更したいとき「*」 や「?」のワイルドカードが普通に使えていました。 ところが、windows10 のコマンドプロンプトで ren *.* x_*.* と打つと aaa.doc  →x_a.doc bbb.doc →x_b.doc とリネームされてしまいます。 期待している結果は、 x_aaa.doc x_bbb.doc です。 何かよい方法があれば教えてください。 Windows Power Shell とか使えば可能でしょうか?