为什么当 .bat 文件在运行 .NET 应用程序后测试 %ERRORLEVEL% 时,它测试的是字符串返回类型,而不是 int?

发布于 2024-10-17 17:19:48 字数 201 浏览 2 评论 0原文

我正在研究如何从命令行或在bat文件中运行.NET应用程序,并且给出了此代码用于测试应用程序的%ERRORLEVEL%(现有返回值):

@if "%ERRORLEVEL%" == "0" goto success

为什么它测试“0” “而不是0?据我了解,.NET 可执行文件在退出时返回一个 int,而不是一个字符串。

I was looking at how to run a .NET app from the command line, or in a bat file, and this code was given for testing the %ERRORLEVEL% (the exiting return value) of the application:

@if "%ERRORLEVEL%" == "0" goto success

Why is it testing for "0" and not 0? As I understand it, the .NET executable is returning an int when it exits, not a string.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只有影子陪我不离不弃 2024-10-24 17:19:48

它只是将数值强制转换为字符串并进行比较。如果环境变量没有值,这会很有帮助,因此 %PARAM% == 1 将计算为 == 1,这会导致错误。

要检查程序的错误级别,最好按照 Raymond 进行评估陈的博客

IF ERRORLEVEL 1 ECHO error level is 1 or more

It's just coercing the numeric value to a string and comparing. This can be helpful if an environment variable has no value so %PARAM% == 1 would evaluate to == 1 which would cause an error.

For checking a program's ERRORLEVEL, it's better to evaluate as per Raymond Chen's blog.

IF ERRORLEVEL 1 ECHO error level is 1 or more
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文