asdfasdf
(括号里面的errorlevel始终是0)
这是当然了。因为:
if EXIST c:\1.txt (
dsfadsf
echo %errorlevel%
)
这是一条命令。
如果没有启动变量延迟的话,%errorlevel%所判断的就是if上一句命令:dir > c:\1.txt
返回值,因为一定执行成功,当然errorlevel也就始终为0。
要想解决这个问题。
启动变量延迟就可以解决。
代码如下:
@echo off
setlocal enabledelayedexpansion
dir > c:\1.txt
if EXIST c:\1.txt (
dsfadsf
echo !errorlevel!
)
asdfasdf
echo %errorlevel%
pause