• 締切済み

DOSで多数のファイルをリネームしたい

「ABC00000.txt」から「ABC00999.txt」という千のファイルがあるのですが、これらの名前をすべて「ABC000.txt」から「ABC999.txt」という風に、中のゼロを二つ消した形にリネームしたいと思っています。 これを実現する為のコマンド、もしくはバッチ処理の方法を教えてください。

みんなの回答

  • kumoz
  • ベストアンサー率64% (120/185)
回答No.6

for %f in (ABC*.txt) do echo ren %f %f >> f_ren.bat 上のコマンドを実行すると、f_ren.bat の内容は次のようになります。 ren ABC00000.txt ABC00000.txt ren ABC00001.txt ABC00001.txt ..... 次に、エディタで2番目のファイル名の 00 を削除してから、f_ren.bat を 実行する。まあ、1000 行あるので大変ですが...。 sed が使えるのであれば、次のような方法があります。 dir /b ABC*.txt | sed "s/ABC00\(.*\)/ren & ABC\1/" > f_ren.bat

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.5

2000/XPのDOSプロンプトでのバッチですと以下のようになります。 (別のDOSでしたら動作しません。ごめんなさい) 以下のようなバッチを作成し、ABCxxxx.txtと同じフォルダに置いて 実行します。 ------------------------------------------ chg.bat echo off for %%a in (ABC*.txt) do call :sub %%a exit /b :sub set x=%1 set x=%x:~0,3%%x:~5,3%.txt ren %1 %x% goto :EOF

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.4

dir > hoge.bat でファイル名の一覧をファイルに出力できるので 後は、矩形のコピー・ペーストができるエディタで 編集。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

変則的なやり方ですが、1回限りで力わざで処理したいようなときに有効な方法を紹介します。 Excelを起動します。 A1に「REN」、B1に「ABC00000.txt」、C1に「ABC00.txt」と入力します。同様に、 A2に「REN」、B2に「ABC00001.txt」、C2に「ABC001.txt」と入力します。 A1:C2を選択し、3列ごと1000行目までコピーします。 表全体を選択してコピーし、メモ帳などのテキストエディタを起動して貼り付けます。 適当なバッチファイル名(test.batなど)をつけて、リネームしたいファイルがあるフォルダに保存します。 保存したバッチファイルを実行します。

JJsoft
質問者

お礼

なるほど、確かに力わざですね。ありがとうございました。

  • Willyt
  • ベストアンサー率25% (2858/11131)
回答No.2

プロンプト画面で当該ディレクトリにコントロールを移しておき、 >ren ABC00*.* ABC*.* とやればいい筈です。

JJsoft
質問者

お礼

試して見ましたが、「00」は消えませんでした。 試しに、 ren ABC00*.* ZZZ*.* としたところ、 すべてのファイル名が「ZZZABC00000」となってしまいました…

  • sei44
  • ベストアンサー率38% (12/31)
回答No.1

関連するQ&A