我有一个.bat文件,用于安装多个Microsoft修补程序,它运行良好。但我需要修改此代码才能使用.exe软件。
有人可以帮我解决这个问题吗?
我的批处理文件是:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
PUSHD %~dp0
FOR %%A IN (-KB.MSU) DO (
CALL :SUB %%~nA
ECHO= Installing KB!KB_NUM!
>NUL TIMEOUT /t 3
WUSA "%%~fA" /quiet /norestart
)
ECHO= == Press any key to restart ==
>NUL PAUSE
SHUTDOWN.EXE /r /t 0
GOTO :EOF
:SUB
SET "KB_NUM=%*"
FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B"
答案 0 :(得分:0)
所有Setup.exe都不同。有些人接受答案文件(.iss,.inf等),许多人接受各种参数。您可能需要单独处理每个.exe。您可以从命令提示符处获得一些好的信息:
YourSetup.exe /?
您可能希望您的bat文件检查是否已经安装了相关程序。你能提供更多细节吗?你想安装哪些程序?
如果您的目的是在安装其他程序之前应用所有重要的Windows更新,我会做的是允许机器在需要时重新启动并使用autologon.exe(来自sysinternals)在重新启动时重新启动此bat文件以便您获得安装当前更新集后可用的后续更新。它可能需要做2或3次。还要注意,您应该在可能遇到的所有操作系统上测试您的代码。当它不再重新启动时,您清除自动登录的内容并恢复所需程序的安装。其中一些可能需要重新启动或进行其他更新(SQL)。
顺便说一句,你上面的程序将你描绘成一个角落,在目前的形式中,你无法通过重新启动问题继续而不重新启动。你是否会做其他事情,以便你可以继续而不重启?您不会总是在一次通过时安装所有更新。这有点工作,但你想做的事情可能就完成了。