0

わかりました、これは少しニッチな質問だと思いますが、誰かが助けてくれることを願っています.

対象OSはWindows NT 4.0です。

私がする必要があるのは、フォルダー内のすべての Jounal.x (x は 0 より大きく 32 より小さい数値) ファイルを読み取るバッチ ファイルを作成することです。次に、EJ-REG-X.100 形式の各ファイルの名前を変更する必要があります。

私の最大の問題は、私が DOS の変数構文と正規表現について少し曖昧であることだと思います。これまでに試したコードは次のとおりです

FOR /R %%g IN (C:\testbatch\transfer\Journal.*) DO (set regnum=%%g, ren Journal.* EJ-REG-%regnum%.100)

他に提供できる情報があれば教えてください。ありがとう!

4

2 に答える 2

3

これを試して:

for /l %%a in (1,1,31) do (
    set "new=00%%a"
    setlocal enabledelayedexpansion
    set "new=!new:~-3!"
    ren "C:\testbatch\transfer\Journal.%%a" "EJ-REG-!new!.100"
    endlocal
)
于 2013-07-09T13:26:18.207 に答える
0

/R は再帰検索用で、使用しないので削除してください

ループ内の %%g と BTW regnum には完全なファイル パスが含まれています

そのため、パスとファイル名を削除して、%%~xg を使用して拡張子のみを保持するようにします。regnum にはファイル拡張子のみが含まれるため、次のようになります。

FOR /R C:\testbatch\ %%g IN (Journal.*) DO (          
 set ext = %%~xg
 set ext = %ext:. =%
 ren %%g EJ-REG-%ext%.100)
于 2013-07-09T13:33:35.253 に答える