プロが教えるわが家の防犯対策術!

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/26 22:26

・ 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/
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/26 22:28

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