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