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 comandos tar y 7z para extraer el archivo de manera dinámica sin especificar una ruta fija de antemano.

    Recuerda que necesitarás tener instaladas las herramientas tar y 7z 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