首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ERRORLEVEL检索InstallUtil的退出状态

用ERRORLEVEL检索InstallUtil的退出状态
EN

Stack Overflow用户
提问于 2020-06-30 00:49:24
回答 1查看 207关注 0票数 0

更新.

在编写这个问题时,我错误地假设InstallUtil将其状态存储在%ERRORLEVEL%变量中,而不是内部值ERRORLEVEL__中,这是因为它的意外行为。我改了标题,因为它可能会误导人。有关更多细节,请参阅此https://stackoverflow.com/a/62648857/4375327和下面的评论。

(顺便提一句,微软https://learn.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool退出状态代码,也没有指定是否存在多个错误状态。)

我正在为Windows服务编写安装和卸载脚本。我使用与InstallUtil框架一起提供的.NET。

在一个所以回答中,我注意到这段代码:

代码语言:javascript
复制
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error

ERRORLEVEL检查总是失败。出于好奇,我用这句话代替了上面的测试:

代码语言:javascript
复制
IF NOT '%ERRORLEVEL%' == '0'

这一次,状态被正确捕获。为什么?

在问我读https://devblogs.microsoft.com/oldnewthing/20080926-00/?p=20743之前,我仍然不明白为什么https://devblogs.microsoft.com/oldnewthing/20080926-00/?p=20743会这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-30 01:07:53

由于您已经声明installutil返回-1 (如果失败),if errorlevel 1 goto error将永远不会被选中,因为if errorlevel 1的意思是“如果%错误级别%为1或更高”,而-1则小于1。

if not '%errorlevel%'=='0'工作是因为-1不是0。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62648723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档