假设我们想要使用以下命令在Windows中创建一个空文件:
type nul > C:\does\not\exist\file.txt
Run Code Online (Sandbox Code Playgroud)
目录不存在,所以我们得到错误:
The system cannot find the path specified
Run Code Online (Sandbox Code Playgroud)
如果你打印%errorlevel%输出是:
echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)
但命令没有成功!
我注意到,%errorlevel%如果你使用重定向,窗口不会设置最后一个命令.
有没有解决的办法?
我面临一个奇怪的情况,我写的批处理文件报告错误的退出状态.这是一个重现问题的最小样本:
bug.cmdecho before
if "" == "" (
echo first if
exit /b 1
if "" == "" (
echo second if
)
)
echo after
Run Code Online (Sandbox Code Playgroud)
如果我运行这个脚本(使用Python但问题实际上也是以其他方式启动时),这就是我得到的:
python -c "from subprocess import Popen as po; print 'exit status: %d' % po(['bug.cmd']).wait()"
echo before
before
if "" == "" (
echo first if
exit /b 1
if "" == "" (echo second if )
)
first if
exit status: 0
Run Code Online (Sandbox Code Playgroud)
注意尽管应该如何exit status报告.0exit /b 11
现在奇怪的是,如果我删除了内部 …