7z ファイルをバッチで抽出し、各出力を別のツールの入力として使用します。

7z ファイルをバッチで抽出し、各出力を別のツールの入力として使用します。

私はスクリプト作成にあまり詳しくないので、次の点について助けていただきたいと思います。cmd.exe に対して実行するバッチ スクリプトを探しています。

  1. 何百もの .7z アーカイブが入ったフォルダーがあります。各アーカイブは 1 つのファイルで構成されています。フォルダーには、スクリプトの後半で使用される 7-zip.exe と tool.exe も含まれています。

  2. 最初のアーカイブを7-zipで解凍し、出力を温度サブフォルダー。

  3. 別のツールを使用して入力ファイルを変換する温度結果ファイルを出力します処理済みサブフォルダー。

  4. 問題のツールのコマンドは ---> tool.exe -i " です。.abc 拡張子を持つ入力ファイルへのパス「 -o 」.def 拡張子を持つ出力ファイルへのパス" -f xxx -c yyy -lz -b zzzzzz <---.

  5. ソースファイルを削除する温度フォルダ。

  6. 次の .7z アーカイブに移動します。

ご協力をよろしくお願いいたします。

答え1

あなたが私に渡してくれた情報から推測すると、次のようなものになると思います:

@echo off

for %%a in (*.7z) do call :Extract "%%~na" "%%a"

exit

:Extract
md "%~1.tmp"
7-zip.exe x "%~2" -o"%~1.tmp\"
for /f "Delims=" %%a in ('dir /b "%~1.tmp\*.abc"') do set ABCFile=%%~na

tool.exe -i "%~1.tmp\%ABCFile.abc%" -o "%ABCFile%.def" -f xxx -c yyy -l z -b zzzzzz
rd /q /s "%~1.tmp"
goto :EOF

関連情報