问题标签 [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.
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 不要让构建后事件失败。
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
loops - 在读取循环中具有错误级别的 qudry
我在自动热键脚本中设置错误级别时遇到问题。
截至目前,它工作正常,除非腻子会话意外关闭。
我在设置 ip 和密码后调用 sub 以通过 telnet 重新启动设备。
基本上我需要一个消息框来弹出和一个返回命令而不是崩溃
像 MsgBox 一样,%IP% 重启失败返回
我自己无法让它工作,所以我想在这里问
batch-file - 如何将 ERRORLEVEL 存储在变量中?
我正在尝试将ERRORLEVEL
环境变量存储到本地批处理变量中。但事实总是如此0
。
我试过了,ECHO %ERRORLEVEL%
但它也总是打印0
出来。
foo.exe
正在生成错误,可以ECHO %ERRORLEVEL%
从命令提示符中看到并且ERRORCOUNT
已正确更新。
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 机器上的任务计划程序在历史记录项中显示正确的返回码?
解决方法:虽然我仍然想了解这种奇怪的行为(也许它表明一些更重要的问题/误解),但我正在通过将以下内容添加到我的任务脚本来解决我的原始问题:
variables - 在循环中设置变量时遇到问题
我正在尝试使用!errorlevel!作为循环内的条件。我在调用中传递了错误级别,然后我尝试再次使用 findstr 来设置错误级别,但条件没有看到变化。
所以发生的事情是在我回到 :checkdup 并再次运行 findstr 之后,!errorlevel!正在更新为 1 但它仍停留在顶部 if 语句中。
这是来自日志的示例。
所以错误级别被设置为 1 但它卡在 if !errorlevel! == 0 条件。它应该转到另一个检查并继续执行 for 循环。我已经坚持了几天,现在尝试了许多不同的组合来让它工作。
谢谢
batch-file - BATCH:读取文件并静默安装应用程序,但有错误
您好我正在尝试制作一个脚本来静默安装一些应用程序。我需要阅读一个名为 list.txt 的文本文件。在文件中有我将静默安装的应用程序,每行。但是如果程序行没有安装文件,我不需要尝试静默安装。并将未安装的应用程序的名称保存在不同的文本文件中。这就是我遇到的问题,我无法使用 %errorlevel%, !errorlevel! 或错误级别 1。
这就是脚本:
而list.txt的内容是:
%errorlevel% 和 !errorlevel! 总是 1
解决方案感谢 MC ND 的评论:
temp.txt 的输出:
windows - %errorlevel% 在 Windows XP 中不起作用。但它适用于Windows7
%errorlevel% 在 WindowsXP 中不起作用。
据我所知,当发生错误时,%errorlevel% 设置为 1 或更高的值,如果没有错误,它将设置为 0。
但是,即使没有错误,%errorlevel% 是 1。我设置 %errorlevel% 0,即使有错误 %errorlevel% 仍然是 0。
我认为操作系统不会改变 XP 中的 %errorlevel% 。
在Win7中它完全可以工作。
但是如果 errorlevel 1 () 看起来有效。
windows - 批处理文件错误级别在启动时设置为 0
.bat 文件运行后的错误级别为 0。但是我使用错误级别作为条件,例如:
我的问题是,如果错误级别已经设置为 0,那么条件就会变得无效。
他们无论如何我可以解决这个问题吗?
注意:错误级别未在文件中的任何位置设置。
我正在学习这门语言,所以如果这是一个明显的错误,请多多包涵
谢谢
batch-file - 从批处理文件中捕获缺少的依赖项 (dll)
当从批处理中运行缺少依赖项的 EXE 时,我可以捕获错误吗?在这种情况下,EXE 无法加载并且我们的应用程序日志为空
我尝试检查错误级别,甚至尝试使用depends.exe 工具预先检查EXE,但它们都不起作用
即mybat.exe
run-this-app.exe 做一些检查.. 做一些事情