Extraiga archivos 7z por lotes y utilice cada salida como entrada para otra herramienta

Extraiga archivos 7z por lotes y utilice cada salida como entrada para otra herramienta

Soy un poco nuevo en el mundo de las secuencias de comandos y esto es con lo que me gustaría pedir ayuda, por favor. Estoy buscando un script por lotes para ejecutar en cmd.exe.

  1. Tengo una carpeta con cientos de archivos .7z. Cada archivo consta de un archivo. La carpeta también contiene 7-zip.exe y tool.exe que se utilizan más adelante en el script.

  2. Tome el primer archivo, extraiga usando 7-zip y coloque la salida enTemperaturasubcarpeta.

  3. Utilice otra herramienta para convertir el archivo de entrada enTemperaturay enviar el archivo resultante aProcesadasubcarpeta.

  4. El comando para la herramienta en cuestión es ---> tool.exe -i "ruta al archivo de entrada con extensión .abc" -o "ruta al archivo de salida con extensión .def" -f xxx -c yyy -lz -b zzzzzz <---.

  5. Eliminar el archivo fuente deTemperaturacarpeta.

  6. Pasar al siguiente archivo .7z y así sucesivamente.

Muchas gracias de antemano por la ayuda.

Respuesta1

Por la información que me pasaste supongo que sería algo como esto:

@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

información relacionada