Análisis en profundidad de la función de parche de actualización automática de Win 2003

  

Algunos lectores han informado problemas con los archivos de actualización automática por lotes de Windows. Algunos paquetes de parches tienen un mensaje de error durante la instalación y no se pueden continuar.

Después de la investigación, se encontró que esto se debe a que Windows tiene principalmente dos tipos diferentes de parches, que necesitan usar diferentes parámetros. Una vez que los parámetros son incorrectos, no se instalará, por lo que se requieren diferentes parámetros para los diferentes parches. Vamos a analizarlo en detalle.

Vea el tipo de parche de la imagen

Como se muestra en la Figura 1, coloque el archivo de parche de Windows 2003 Server en el mismo directorio,

puede ver claramente el nombre del archivo de parche al frente. Hay dos tipos de iconos, uno es un simple icono ejecutable y el otro es un icono ejecutable que marca el archivo comprimido.

Desde el Formato de análisis de atributos

El icono para el archivo WindowsServer2003-KB823559-x86-ENU.exe es un simple icono ejecutable. Puede ver la información de ayuda para este parche en la Figura 2 y descubrió que usa el programa de actualización de Microsoft para instalar el parche. La información de la versión del parche se puede ver en la Figura 3. Está hecha por SFXCAB.EXE, y todos los demás parches con iconos de archivos ejecutables comunes tienen propiedades similares.

El icono del archivo DirectX9-KB819696-x86-ENU.exe es un icono de archivo ejecutable del archivo comprimido. Puede ver la información de ayuda del parche. Los parámetros que reconoce no incluyen /U y /Z, y si utiliza el parámetro /U para ejecutarlo, se generará un error. De manera similar, al observar la información de la versión del parche, se puede ver que el parche DirectX9-KB819696-x86-ENU se deriva de WEXTRACT.EXE, y todos los demás parches con iconos de archivos ejecutables con archivos comprimidos con marcas tienen características similares. .

Ahora está claro que Windows tiene dos tipos diferentes de parches, que usan parches y parámetros diferentes.

Distinguir automáticamente los formatos de parches

¿Cómo se distingue entre estos dos tipos diferentes de parches en un archivo por lotes? La forma más segura es encontrar un pequeño programa para detectar la información de recursos del archivo de parche. Si el recurso de parche incluye un icono de archivo ejecutable que marca el archivo comprimido, entonces el parche es el segundo tipo de parche, solo se usa el parámetro /Q, si el recurso de parche es Excluyendo el icono, luego el primer tipo de parche, puede usar los parámetros /U /Q /Z para instalar el parche.

Esta es una forma más fácil de hacer esto, simplemente use los comandos internos de Windows y no necesita programas adicionales. Busque la cadena de características en el archivo de parche. Si existe una cadena solo en un determinado tipo de parche, puede distinguir el tipo de parche en función de esto.

Paso 1: como se muestra en la Figura 4, abra el archivo WindowsServer2003-

KB823559-x86-ENU.exe y el archivo DirectX9-KB819696-x86-ENU.exe con un editor de texto. Muchas cadenas de características, como la cadena "_SFX_CAB_EXE_PATH", existen solo en el parche del tipo SFXCAB.EXE, mientras que las cadenas "CABINET" y "WEXTRACT" solo están presentes en el archivo de parche del tipo WEXTRACT.EXE. Por lo tanto, puede utilizar el método de búsqueda de una cadena para determinar el tipo de archivo de parche.

Paso 2: Ingrese " cmd " en el menú &startquo; run " run " y luego ingrese la carpeta donde se encuentra el parche. Ejecute el siguiente comando para especificar los parámetros necesarios para el archivo de parche:

(@findstr _SFX_CAB_EXE_PATH parche nombre de archivo > nul &&@echo parámetro /U /Q /Z) | |  Parámetros de @echo /Q

El comando anterior significa que si se encuentra la cadena _SFX_CAB_EXE_PATH, el parche usa el parámetro /U /Q /Z, de lo contrario se usa el parámetro /Q.

El tercer paso: el resultado en ejecución se muestra en la Figura 5.

Método simple de una vez por todas

Si primero identifica el juicio, luego agrega los parámetros de acuerdo con el resultado y luego ejecuta el proceso por lotes, es demasiado problema. Aquí hay un comando por lotes completo que combina el juicio y la instalación del parche:

FOR /R %% F IN (* .exe) DO @ ((@ findstr _SFX_CAB_EXE_PATH " %% F " > nul &&@start /wait %% F /U /Q /Z) | |  @start /wait %% F /Q)

qchain.exe

Coloque el archivo por lotes en el directorio de parches, no necesita colocar los archivos de parches en el mismo directorio, para el comando El parámetro /R buscará automáticamente todos los subdirectorios. Nota: Para el parche después de diciembre de 2002, básicamente no es necesario utilizar el comando qchain, el nuevo parche tiene incorporado este comando.

Copyright © Conocimiento de Windows All Rights Reserved