iexpress重启的条件是什么
What is the condition for iexpress restart
我使用 iexpress.exe 基于批处理文件快速创建一个简单的安装程序。 IExpress 向导提供选项 "Only restart if needed".
但是我如何从批处理文件中判断是否需要重新启动?我尝试在 windows 更新中使用退出代码 3016。但那是行不通的。
顺便说一句:我用
调用批处理文件
cmd.exe /c my.bat
my.bat的内容:
exit /b 3010
我试图让 IExpress 识别 return 代码。不过,我认为您想要 3010
,而不是 3016
。该命令也将是:
exit 3010
[否 /b
– 我们想要 return 来自 cmd
的退出代码,而不是设置 errorlevel
]。
但它没有用,这让我想知道 IExpress 是否愿意检查一下。
无论如何,我用 Process Monitor 做了一些调查。在 安装过程 运行 之后,IExpress 似乎立即检查 PendingFileRenameOperations
注册表值以查看文件是否已标记为重命名(或删除)。如果有,它会确定需要重新启动,并采取您在 SED 文件中指定的操作(例如提示用户重新启动;或只是重新启动;或什么都不做)。
In case you’re not familiar with it, the PendingFileRenameOperations
registry value is a list of files to be moved or deleted on the next system boot.
您可以使用 Sysinternals MoveFile 来模拟这些计划在下次启动时重命名之一。将 movefile.exe
添加到您的 IExpress 存档中,并在您的批处理文件中添加如下一行:
movefile.exe -accepteula foo bar
实际的文件名并不重要 - 只需使用您确定不存在的文件即可。 (只要您没有更改批处理文件中的目录,它仍然是一个文件,例如 %temp%\IXP000.TMP
。)
请注意,您需要 运行ning 提升权限(运行 作为管理员)。
在这里工作得很好。每次 运行 后都会弹出 IExpress,提示用户重新启动。
我使用 iexpress.exe 基于批处理文件快速创建一个简单的安装程序。 IExpress 向导提供选项 "Only restart if needed".
但是我如何从批处理文件中判断是否需要重新启动?我尝试在 windows 更新中使用退出代码 3016。但那是行不通的。
顺便说一句:我用
调用批处理文件cmd.exe /c my.bat
my.bat的内容:
exit /b 3010
我试图让 IExpress 识别 return 代码。不过,我认为您想要 3010
,而不是 3016
。该命令也将是:
exit 3010
[否 /b
– 我们想要 return 来自 cmd
的退出代码,而不是设置 errorlevel
]。
但它没有用,这让我想知道 IExpress 是否愿意检查一下。
无论如何,我用 Process Monitor 做了一些调查。在 安装过程 运行 之后,IExpress 似乎立即检查 PendingFileRenameOperations
注册表值以查看文件是否已标记为重命名(或删除)。如果有,它会确定需要重新启动,并采取您在 SED 文件中指定的操作(例如提示用户重新启动;或只是重新启动;或什么都不做)。
In case you’re not familiar with it, the
PendingFileRenameOperations
registry value is a list of files to be moved or deleted on the next system boot.
您可以使用 Sysinternals MoveFile 来模拟这些计划在下次启动时重命名之一。将 movefile.exe
添加到您的 IExpress 存档中,并在您的批处理文件中添加如下一行:
movefile.exe -accepteula foo bar
实际的文件名并不重要 - 只需使用您确定不存在的文件即可。 (只要您没有更改批处理文件中的目录,它仍然是一个文件,例如 %temp%\IXP000.TMP
。)
请注意,您需要 运行ning 提升权限(运行 作为管理员)。
在这里工作得很好。每次 运行 后都会弹出 IExpress,提示用户重新启动。