问题标签 [errorlevel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9933 浏览

visual-studio-2010 - SignTool.exe 错误后 Visual Studio 中的 PostBuild 事件失败

我们在 Visual Studio 2010 中有一个项目,它在构建后事件中运行批处理文件。该批处理从 Microsoft SDK 调用 signtool.exe 以对二进制文件进行签名和时间戳记。

然而,时间戳服务器(我们使用http://timestamp.verisign.com/scripts/timstamp.dll )由于某种原因往往不可靠,有时会失败。这导致构建失败。

然后我们实现了一个更高级的批处理脚本(基于代码),拆分签名和时间戳,并允许在失败时重试时间戳操作。

这是批处理脚本 (signfile.bat) 的简化版本:

构建后的事件代码如下所示:

因此,如果时间戳失败,它会以 2 秒的间隔重试 10 次。

但是,我们观察到的是,如果时间戳从第一次尝试开始就很好,那么一切都很好。但是,如果第一次尝试失败,那么整个构建后事件将失败,代码为 -1,即使在下一次尝试时时间戳成功。

因此,如您所见,即使从 signfile.bat 返回的错误代码为 0,Visual Studio 仍认为它是 -1 并导致事件失败。

所有清除错误标志的尝试,比如ver>nul在这里和那里添加,或者exit 0在最后添加(当然是在signfile.bat之前添加“call”)都没有帮助,因为看起来Visual Studio不仅检查了错误级别,还检查了一些东西别的。实际上,批处理和 signfile.bat 仅在出错时返回 0 或 1,而不是 -1。如果 signtool.exe 一次返回错误,似乎没有办法说服 Visual Studio 不要让构建后事件失败。

0 投票
3 回答
10327 浏览

batch-file - Can't get errorlevel from failed MOVE command in batch script

I'm pretty new to this forum so i first want to thank you for providing me with solutions even before i became a member :).

So I have this code:

The problem is that I can't get the errorlevel different than 0. Even when the files that are to be copied are missing from location, i still get the successfuly archived message echoed. I searched the forum for similar questions, but i couldn't make it work for some reason. Is there something different between the copy and the ping command (the ping command returns the correct exit code in the errorlevel), because i can't get it with either copy or move...

Thanks! Andrew

0 投票
1 回答
159 浏览

loops - 在读取循环中具有错误级别的 qudry

我在自动热键脚本中设置错误级别时遇到问题。

截至目前,它工作正常,除非腻子会话意外关闭。

我在设置 ip 和密码后调用 sub 以通过 telnet 重新启动设备。

基本上我需要一个消息框来弹出和一个返回命令而不是崩溃

像 MsgBox 一样,%IP% 重启失败返回

我自己无法让它工作,所以我想在这里问

0 投票
2 回答
16517 浏览

batch-file - 如何将 ERRORLEVEL 存储在变量中?

我正在尝试将ERRORLEVEL环境变量存储到本地批处理变量中。但事实总是如此0

我试过了,ECHO %ERRORLEVEL%但它也总是打印0出来。

foo.exe正在生成错误,可以ECHO %ERRORLEVEL%从命令提示符中看到并且ERRORCOUNT已正确更新。

0 投票
1 回答
4407 浏览

windows - Windows 任务计划程序报告不正确/不一致的结果代码

背景:我正在尝试在计划任务失败时收到电子邮件通知。我的任务可以通过退出代码(错误级别)指示失败,我想使用它并按照此答案中描述的过滤方法来触发电子邮件。

问题:我在不同的机器和版本的 Windows 上从任务计划程序中得到不一致的行为。为了测试,我正在使用以下非常简单的任务。

  • 仅在用户登录时运行。(其中“用户”是当前用户)
  • 行动:启动程序
    • 程序/脚本:cmd
    • 论据:/c "exit /b 1"
    • 开始于:空白
  • 其他一切:默认

我已启用任务历史记录,当我在 Windows 7 Ultimate 和 Windows Server 2008 R2 Enterprise 上手动运行任务时,会在“操作已完成”类别中创建如下正确的历史记录项:

任务计划程序成功完成任务“\test”,实例“{abcdefgh-fab0-4a21-b51a-e25baaaa0000}”,操作“C:\Windows\system32\cmd.EXE”,返回码为 1。

Last Run Result列中的文本对应于:(0x1)

但是,在 Windows Server 2012 (Azure VM) 上运行时,会出现以下错误消息:

任务计划程序成功完成任务 "\test" ,实例 "{abcdefgh-fab0-4a21-b51a-e25bbbbb1111}" ,操作 "C:\Windows\system32\cmd.EXE"返回代码 0

(强调我的。)但是Last Run Result列中的文本显示为:Incorrect function: (0x80070001)。这表明至少部分任务调度处理器识别出某种程度的错误情况。如果我将参数替换为/c "exit /b 0",则此列显示为:The operation completed successfully. (0x0)

我尝试了用户上下文、“开始于”目录、参数(带和不带/b)以及“配置为:”下的不同操作系统的各种值组合,但无济于事。

问题:如何让 Windows 2012 机器上的任务计划程序在历史记录项中显示正确的返回码?

解决方法:虽然我仍然想了解这种奇怪的行为(也许它表明一些更重要的问题/误解),但我正在通过将以下内容添加到我的任务脚本来解决我的原始问题:

0 投票
1 回答
92 浏览

variables - 在循环中设置变量时遇到问题

我正在尝试使用!errorlevel!作为循环内的条件。我在调用中传递了错误级别,然后我尝试再次使用 findstr 来设置错误级别,但条件没有看到变化。

所以发生的事情是在我回到 :checkdup 并再次运行 findstr 之后,!errorlevel!正在更新为 1 但它仍停留在顶部 if 语句中。

这是来自日志的示例。

所以错误级别被设置为 1 但它卡在 if !errorlevel! == 0 条件。它应该转到另一个检查并继续执行 for 循环。我已经坚持了几天,现在尝试了许多不同的组合来让它工作。

谢谢

0 投票
0 回答
232 浏览

batch-file - BATCH:读取文件并静默安装应用程序,但有错误

您好我正在尝试制作一个脚本来静默安装一些应用程序。我需要阅读一个名为 list.txt 的文本文件。在文件中有我将静默安装的应用程序,每行。但是如果程序行没有安装文件,我不需要尝试静默安装。并将未安装的应用程序的名称保存在不同的文本文件中。这就是我遇到的问题,我无法使用 %errorlevel%, !errorlevel! 或错误级别 1。

这就是脚本:

而list.txt的内容是:

%errorlevel% 和 !errorlevel! 总是 1

解决方案感谢 MC ND 的评论:

temp.txt 的输出:

0 投票
4 回答
1003 浏览

windows - %errorlevel% 在 Windows XP 中不起作用。但它适用于Windows7

%errorlevel% 在 WindowsXP 中不起作用。

据我所知,当发生错误时,%errorlevel% 设置为 1 或更高的值,如果没有错误,它将设置为 0。

但是,即使没有错误,%errorlevel% 是 1。我设置 %errorlevel% 0,即使有错误 %errorlevel% 仍然是 0。

我认为操作系统不会改变 XP 中的 %errorlevel% 。

在Win7中它完全可以工作。

但是如果 errorlevel 1 () 看起来有效。

0 投票
1 回答
798 浏览

windows - 批处理文件错误级别在启动时设置为 0

.bat 文件运行后的错误级别为 0。但是我使用错误级别作为条件,例如:

我的问题是,如果错误级别已经设置为 0,那么条件就会变得无效。

他们无论如何我可以解决这个问题吗?

注意:错误级别未在文件中的任何位置设置。

我正在学习这门语言,所以如果这是一个明显的错误,请多多包涵

谢谢

0 投票
1 回答
233 浏览

batch-file - 从批处理文件中捕获缺少的依赖项 (dll)

当从批处理中运行缺少依赖项的 EXE 时,我可以捕获错误吗?在这种情况下,EXE 无法加载并且我们的应用程序日志为空

我尝试检查错误级别,甚至尝试使用depends.exe 工具预先检查EXE,但它们都不起作用

即mybat.exe

run-this-app.exe 做一些检查.. 做一些事情