人生最悪の忘れ物

「ABC00000.txt」から「ABC00999.txt」という千のファイルがあるのですが、これらの名前をすべて「ABC000.txt」から「ABC999.txt」という風に、中のゼロを二つ消した形にリネームしたいと思っています。

これを実現する為のコマンド、もしくはバッチ処理の方法を教えてください。

A 回答 (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
    • good
    • 1

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
    • good
    • 2

dir > hoge.bat



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

変則的なやり方ですが、1回限りで力わざで処理したいようなときに有効な方法を紹介します。



Excelを起動します。
A1に「REN」、B1に「ABC00000.txt」、C1に「ABC00.txt」と入力します。同様に、
A2に「REN」、B2に「ABC00001.txt」、C2に「ABC001.txt」と入力します。
A1:C2を選択し、3列ごと1000行目までコピーします。
表全体を選択してコピーし、メモ帳などのテキストエディタを起動して貼り付けます。
適当なバッチファイル名(test.batなど)をつけて、リネームしたいファイルがあるフォルダに保存します。
保存したバッチファイルを実行します。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/15 18:02

プロンプト画面で当該ディレクトリにコントロールを移しておき、



>ren ABC00*.* ABC*.*

とやればいい筈です。
    • good
    • 0
この回答へのお礼

試して見ましたが、「00」は消えませんでした。

試しに、
ren ABC00*.* ZZZ*.*
としたところ、
すべてのファイル名が「ZZZABC00000」となってしまいました…

お礼日時:2007/01/15 14:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報