【发布时间】:2011-02-26 00:15:11
【问题描述】:
我有一个 perl 文件,它调用一个批处理文件来安装第 3 方程序。
Main.pl
system ("Installer.bat");
print "Error code is $? \n";
Installer.bat
@echo off
installer.exe
echo errorlevel is %errorlevel% > logfile
exit %errorlevel%
批处理文件返回错误代码 3010,提示需要重新启动。 但是,perl 模块打印 49664。我认为它应该打印 3010。有人可以解释一下这是如何工作的吗?我想在我的 perl 代码中获取重新启动所需的错误代码,然后做一些清理工作并从 perl 模块重新启动机器。
以下相关点也不清楚。 - Windows 批处理文件只有 255 个错误代码,那么如何将 3010 作为错误代码返回? - This place 建议我们需要将错误代码右移 8 位才能得到本机错误代码。因此,如果我将 49664 右移 8,我得到 194(仍然与 3010 不同)。但是我也注意到 3010 Mod 256 = 194
【问题讨论】:
-
您对 3010 mod 256 的评论主要回答了您自己的问题。你现在得到了 8 位答案。因此,Oesor 的答案可能是您需要做的事情才能获得全部价值。
标签: perl batch-file