当我尝试运行我的 Perl 脚本时,它会成功执行。后来,当我运行这个命令时echo %errorlevel%
,它给我的输出为 1。为什么?
问问题
1511 次
2 回答
5
如果 Perl 返回错误级别 1,则exit(1)
调用其中之一
>perl -e"exit 1"
>echo %errorlevel%
1
或在处理程序$?
中设置1
END
>perl -e"END { $? = 1; }"
>echo %errorlevel%
1
或者程序在什么时候死$!
了1
>perl -e"$!=1; die;"
Died at -e line 1.
>echo %errorlevel%
1
(这通常表明系统调用失败并显示“不允许操作”)
>perl -E"say $!=1"
Operation not permitted
或者程序在$!
was0
和$?
was时死亡(1 << 8)
。
>perl -e"$!=0; $?=1<<8; die;"
Died at -e line 1.
>echo %errorlevel%
1
我想有可能在其他情况下perl
退出1
(比如加载perl
本身的问题),但我不知道有任何这样的情况。
于 2012-07-20T05:34:10.513 回答
1
需要注意的是,您必须立即询问 %ERRORLEVEL%。批处理脚本中的每一步都会设置或弄乱错误级别,因此如果您希望它保留,它不会。例如,如果您运行一个脚本,然后运行另一个命令(dir 或 echo 等),然后检查 errolevel,它将用于脚本之后的命令,而不是脚本本身。
于 2012-07-20T11:29:43.753 回答