比方说,我们想用下面的命令在windows中创build一个空文件:
type nul > C:\does\not\exist\file.txt
该目录不存在,所以我们得到的错误:
The system cannot find the path specified
如果你打印出%errorlevel%
的输出是:
echo %errorlevel% 0
然而,这个命令并不成功!
我注意到,如果您使用redirect,Windows不会设置最后一个命令的%errorlevel%
。
有没有解决的办法?
您可以使用以下内容:
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才会在重定向错误之后设置 运营商。 我从来不会猜到 如果不是你的优秀问题,我也不会费心去测试。
如果你想要做的就是在重定向失败时设置ERRORLEVEL,那么当然你可以简单地做:
type nul > C:\does\not\exist\file.txt || rem