• ベストアンサー

MS-DOSのバッチによるファイルリネームの方法

いつもお世話になります。 MS-DOS(windows XP)で、あるディレクトリ内のファイルを一括リネームするようなバッチスクリプトを作成しようとしています。 ファイル名は、例えば「10P1125532_20080130135757_condA_para50.txt」というような感じで、後半の「_condA_para50.txt」は共通で、これが2万ファイルほどあります。 それで、後半の「_condA_para50」の部分を削除しようとして、まずはコマンドプロンプトでそのディレクトリに移動してから、 ren *_condA_para50.txt *.txt とやったのですが、認識されていないのか、リネームされませんでした。(エラーも出ませんでした) スクリプトに書く場合は、どのようにすればちゃんとリネームされるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

for %%A in (*.txt) do call :sub %%A goto :eof :sub set X=%1 set X=%X:_condA_para50=% ren %1 %X% goto :eof

aneja
質問者

お礼

早速のご回答、どうもありがとうございました。 パラメータをこういうふうに使えばいいのですね。 とても勉強になりました。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ 2つになりましたが、次のバッチファイルを試してみてください。 ------------------------------------------------------------ b1.bat ------------------------------------------------------------ @echo off for %%f in (*.txt) do cmd /c b2.bat %%~nf %%~xf :END ------------------------------------------------------------ b2.bat ------------------------------------------------------------ @echo off set tmp=%1 ren %1%2 %tmp:_condA_para50=%%2 :END ・ バッチファイルにこだわらなければ、次のユーティリティソフトも試してください。 http://hp.vector.co.jp/authors/VA014830/FlexRena/

aneja
質問者

お礼

早速のご回答、どうもありがとうございました。 パラメータをうまく使えばいいのですね。 勉強になりました。 教えて下さったツールも、機会があれば活用したいと思います。

関連するQ&A