Código:
@Echo off
Title Instalador con lista
set ruta=F:\HDD negro\Utiles y programas\Programas De Microsoft\Microsoft_Updates\updates\
for /f %%i in ('dir /b /o:n "*kb*.msu"') do (
if not exist "updates_total.txt" (
echo %%i >> "updates_total.txt" )
)
::2 parte
for /f "tokens=1 delims=*" %%i in (updates.txt) do (find /i "%%i" "%ruta%updates_total.txt" >> "updates_instalar.txt" )
El archivo updates.txt tiene un formato asi:
Código:
*KB2655992*
*KB2691442*
*KB2698365*
*KB3719985*
*KB2506212*
*KB2507618*
*KB2536276*
*KB3544893*
*KB2560656*
*KB2564958*
El caso es que find funciona bien, pero lo que devuelve en el archivo "updates_instalar.txt" tiene un formato muy raro, y yo esperaba que fuese simplemente el nombre de la revision, para posteriormente usar este archivo de texto en otro FOR, y las ejecute. El formato erroneo es este:
Código:
---------- F:\HDD NEGRO\UTILES Y PROGRAMAS\PROGRAMAS DE MICROSOFT\MICROSOFT_UPDATES\UPDATES\UPDATES_TOTAL.TXT
Windows6.1-KB2655992-x64.msu
---------- F:\HDD NEGRO\UTILES Y PROGRAMAS\PROGRAMAS DE MICROSOFT\MICROSOFT_UPDATES\UPDATES\UPDATES_TOTAL.TXT
Windows6.1-KB2691442-x64.msu
.....
Imagino que habra alguna manera de eliminar los encabezados esos.
Inicialmente pense que podria kizas, listar las updates que el agente de windows update te informa para instalar, pero no tengo ni idea de como se podria hacer, quizas con wmic. Lo que si he visto por la red es la manera de listar las updates instaladas...
Gracias de antemano.