Necesito actualizar el archivo "background.png" en cientos de archivos .zip en el mismo directorio. Probé el siguiente comando sin éxito:
7z u -r "C:\Users\xxx\Desktop\testzip\*.zip" "C:\Users\xxx\Desktop\testzip\background.png"
Recibo el error "no se puede abrir el archivo". ¿Es posible hacer lo?
Respuesta1
Agregue un archivo específico a cada archivo zip de forma recursiva con 7-Zip
Usar unaPara /Fbucle y el Directoriocomando usando los /S /B /A-D
interruptores para iterar sobre cada archivo zip uno por uno de forma recursiva desde el directorio de inicio hacia abajo y actualizar cada archivo comprimido de esta manera.
Nota: Con este método omitirás y no utilizarás el7 cremalleras -r
cambie con el parámetro de actualización.
Línea de comando
FOR /F "TOKENS=*" %A in ('DIR /S /B /A-D "C:\Users\xxx\Desktop\testzip\*.zip"') DO 7z u "%~fA" "C:\Users\xxx\Desktop\testzip\background.png"
Guión por lotes
Nota: Puede establecer el valor de la SET Src=
variable para que sea el de la ruta completa de inicio de la carpeta en la que desea actualizar los archivos zip de forma recursiva. Puede configurar el SET uFile=
valor de la variable para que sea la ruta completa del archivo con el que está actualizando los archivos zip; el archivo de actualización.
@ECHO ON
SET Src=C:\Users\xxx\Desktop\testzip
SET uFile=C:\Users\xxx\Desktop\testzip\background.png
FOR /F "TOKENS=*" %%A in ('DIR /S /B /A-D "%Src%\*.zip"') DO (
7z u "%%~fA" "%uFile%"
)
Recursos adicionales
- Para /F
FOR /?
tokens=x,y,m-n - specifies which tokens from each line are to be passed to the for body for each iteration. This will cause additional variable names to be allocated. The m-n form is a range, specifying the mth through the nth tokens. If the last character in the tokens= string is an asterisk, then an additional variable is allocated and receives the remaining text on the line after the last token parsed.
Además, se ha mejorado la sustitución de referencias variables FOR. Ahora puede utilizar la siguiente sintaxis opcional:
%~fI - expands %I to a fully qualified path name
- -u (Opciones de actualización) interruptor