相关疑难解决方法(0)

Windows中的文件重定向和%errorlevel%

假设我们想要使用以下命令在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%如果你使用重定向,窗口不会设置最后一个命令.

有没有解决的办法?

windows error-handling batch-file io-redirection

21
推荐指数
1
解决办法
6285
查看次数

如何正确报告批处理退出状态?

我面临一个奇怪的情况,我写的批处理文件报告错误的退出状态.这是一个重现问题的最小样本:

bug.cmd

echo 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

现在奇怪的是,如果我删除了内部 …

python windows batch-file exit-code

5
推荐指数
1
解决办法
791
查看次数