ディレクトリ内のアーカイブを解凍し、抽出したファイルの名前を変更するバッチファイルがあります。私のバッチファイルの内容は次のとおりです。ファイルを解凍して名前を変更するバッチファイル
私はファイルがFileName1.xml
FileName2.xml
FileName3.xml
...
と改名されることを期待
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I" -aoa
)
DEL *.zip
@echo off
set i=1
for %%f in (*.xml) do call :renameit "%%f"
goto done
:renameit
ren %1 FileName%i%_Msd.xml
set /A i+=1
:done
しかし、名前を変更したファイル名が、私は再実行した場合2ではなく1から始めるように見えますバッチファイルが最初に抽出され、2から始まって間違って名前が変更された後、バッチファイルはこの命名エラーを修正して1から始まります。
名前を変更したファイルが正しく1から始まるように修正するにはどうすればよいですか?
i = 1の代わりにset i = 0を使用してください。 –
スクリプトの先頭でECHOを無効にしていないと仮定して、プログラムの実行を監視します。具体的には、renameコマンドを見てください。 renameコマンドの後にPAUSEを入れる必要がある場合。 – Squashman
@Byakko_Hakuあなたは提案がうまくいっていて、名前が変更されたファイルは今から1から始まります。ご協力いただきありがとうございます! – Klicker