- 締切済み
DOSで多数のファイルをリネームしたい
「ABC00000.txt」から「ABC00999.txt」という千のファイルがあるのですが、これらの名前をすべて「ABC000.txt」から「ABC999.txt」という風に、中のゼロを二つ消した形にリネームしたいと思っています。 これを実現する為のコマンド、もしくはバッチ処理の方法を教えてください。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- kumoz
- ベストアンサー率64% (120/185)
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)
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)
dir > hoge.bat でファイル名の一覧をファイルに出力できるので 後は、矩形のコピー・ペーストができるエディタで 編集。
- ham_kamo
- ベストアンサー率55% (659/1197)
変則的なやり方ですが、1回限りで力わざで処理したいようなときに有効な方法を紹介します。 Excelを起動します。 A1に「REN」、B1に「ABC00000.txt」、C1に「ABC00.txt」と入力します。同様に、 A2に「REN」、B2に「ABC00001.txt」、C2に「ABC001.txt」と入力します。 A1:C2を選択し、3列ごと1000行目までコピーします。 表全体を選択してコピーし、メモ帳などのテキストエディタを起動して貼り付けます。 適当なバッチファイル名(test.batなど)をつけて、リネームしたいファイルがあるフォルダに保存します。 保存したバッチファイルを実行します。
- Willyt
- ベストアンサー率25% (2858/11131)
プロンプト画面で当該ディレクトリにコントロールを移しておき、 >ren ABC00*.* ABC*.* とやればいい筈です。
お礼
試して見ましたが、「00」は消えませんでした。 試しに、 ren ABC00*.* ZZZ*.* としたところ、 すべてのファイル名が「ZZZABC00000」となってしまいました…
- sei44
- ベストアンサー率38% (12/31)
お礼
なるほど、確かに力わざですね。ありがとうございました。