我使用iexpress.exe快速创建基于批处理文件的简单安装程序。IExpress向导提供“仅在需要时重新启动”选项。
但是,如何从批处理文件中判断需要重新启动呢?我尝试使用退出代码3016,就像在windows更新中一样。但这不管用。
顺便说一句:我用
cmd.exe /c my.batMy.bat的内容:
exit /b 3010发布于 2015-10-02 06:38:24
我试图让IExpress识别返回代码。我认为你想要的是3010,而不是3016。该命令还将是:
exit 3010没有/b - we想从cmd返回退出代码,而不是设置errorlevel。
但是它没有起作用,这让我怀疑IExpress是否会费心去检查这个问题。
总之,我和Process做了一点调查。安装过程运行后,IExpress立即检查PendingFileRenameOperations注册表值,以查看文件是否已被标记为重命名(或删除)。如果有,它确定需要重新启动,并采取您在SED文件中指定的操作(例如提示用户重新启动;或者只是重新启动;或者没有)。
如果您不熟悉它,
PendingFileRenameOperations注册表值是在下一个系统启动时要移动或删除的文件列表。
您可以使用系统内件MoveFile来模拟这些计划中的下一个启动重命名。将movefile.exe添加到IExpress存档中,并在批处理文件中添加如下行:
movefile.exe -accepteula foo bar实际的文件名并不重要--只需使用您知道肯定不存在的文件。(只要您没有更改批处理文件中的目录,它仍将是一个文件,例如,%temp%\IXP000.TMP。)
请注意,为此您需要运行提升(作为管理员运行)。
在这里工作得很好。每次运行后都会弹出IExpress,提示用户重新启动。
https://stackoverflow.com/questions/32881616
复制相似问题