文件重定向在Windows和%ERRORLEVEL%文件重定向在Windows和%ERRORLEVE

2019-05-13 16:38发布

比方说,我们要创建与下面的命令窗口的空文件:

type nul > C:\does\not\exist\file.txt

该目录不存在,所以我们得到的错误:

The system cannot find the path specified

如果打印出来的%errorlevel%的输出是:

echo %errorlevel%
0

但该命令没有成功!

我注意到,Windows不设置%errorlevel%的最后一个命令,如果你使用重定向..

有没有解决的办法?

Answer 1:

您可以使用以下方法:

C:\>type nul > C:\does\not\exist\file.txt && echo ok || echo fail
The system cannot find the path specified.
fail

C:\>echo %errorlevel%
1

我一直认为的&&和|| 运营商使用的错误级别,但显然不是。

非常奇怪的是,ERRORLEVEL被重定向错误后,只有当您使用设置|| 运营商。 我决不会猜到。 也不我会永远都不屑于测试,如果不是你非常好的问题。

如果你想要做的是建立在重定向失败的ERRORLEVEL,那么当然,你可以简单地做:

type nul > C:\does\not\exist\file.txt || rem


文章来源: File redirection in Windows and %errorlevel%