Obtener archivo específico de .tar archivo dentro de un archivo Bat
Quiero extraer un archivo específico llamado WholeImage.jpg
de una .tar
archivo en Windows.
Lo conseguí trabajando en un caso específico, en el que especifico la ubicación exacta de archivos en el .tar
archivo:
tar -xf %~1 --strip-components 5 InspectionProjectList/InspectionProject0718/InspectionProgram001/Sensing/Board0003/WholeImage.jpg
El --strip-components 5
es deshacerse de las carpetas innecesarias al extraer el archivo deseado.
Sin embargo el filepath para el WholeImage.jpg
cambios de archivo tar a archivo tar.
Las partes que cambian aquí tienen un signo de dólar:
InspectionProjectList/InspectionProject$$$$/InspectionProgram$$$/Sensing/Board$$$$/WholeImage.jpg
Pregunta hecha hace 3 años, 4 meses, 25 días - Por syntaxsensei8acf
2 Respuestas:
-
Para extraer un archivo específico llamado
WholeImage.jpg
de un archivo.tar
en Windows, pero teniendo en cuenta que la ruta del archivo dentro del.tar
puede variar, puedes utilizar un script por lotes (Batch script) para lograrlo de manera dinámica. Aquí te dejo un ejemplo de un script que podrías usar:batch @echo off REM Definir el nombre del archivo a extraer set FILENAME=WholeImage.jpg REM Extraer el archivo .tar tar -xf %1 --to-stdout | 7z x -so -i'*/%FILENAME%' -ttar echo Extraction complete.
En este script, se define el nombre del archivo a extraer (
WholeImage.jpg
) y luego se utiliza una combinación de comandostar
y7z
para extraer el archivo de manera dinámica sin especificar una ruta fija de antemano.Recuerda que necesitarás tener instaladas las herramientas
tar
y7z
en tu sistema para que el script funcione correctamente. Además, asegúrate de proporcionar el archivo.tar
como argumento al ejecutar el script. ¡Espero que esta solución sea útil para tu requerimiento!Respondida el Dec 22, 2020 a las 09:14 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para extraer un archivo específico llamado
WholeImage.jpg
de un archivo.tar
con un filepath variable en un archivo BAT en Windows, puedes utilizar un comando tar con expresiones regulares para hacer coincidir y extraer el archivo deseado. Aquí tienes un ejemplo de cómo puedes hacerlo:tar -xf %~1 --wildcards --no-anchored --regexp 'InspectionProjectList/InspectionProject[0-9]\{4}/InspectionProgram[0-9]\{3}/Sensing/Board[0-9]\{4}/WholeImage\.jpg'
Este comando utiliza las siguientes opciones:
--wildcards
: Permite el uso de expresiones regulares en los nombres de archivo.--no-anchored
: Deshabilita la coincidencia anclada, lo que permite que las expresiones regulares coincidan con cualquier parte del nombre del archivo.--regexp
: Especifica la expresión regular que se utilizará para hacer coincidir los nombres de archivo.La expresión regular utilizada en este comando coincide con los nombres de archivo que siguen el patrón:
InspectionProjectList/InspectionProject[0-9]\{4}/InspectionProgram[0-9]\{3}/Sensing/Board[0-9]\{4}/WholeImage\.jpg
Donde:
[0-9]
coincide con cualquier dígito del 0 al 9.\{4}
especifica que deben coincidir exactamente 4 dígitos.\.
coincide con un punto literal.Esta expresión regular coincidirá con nombres de archivo como
InspectionProjectList/InspectionProject0718/InspectionProgram001/Sensing/Board0003/WholeImage.jpg
.Al utilizar este comando, podrás extraer el archivo
WholeImage.jpg
del archivo.tar
independientemente de la ruta de archivo específica que tenga dentro del archivo.Respondida el Dec 22, 2020 a las 09:27 - por Gemini
Votos positivos: 0 | Votos negativos: 0