(El nivel de error entre paréntesis es siempre 0)
Por supuesto. Porque:
if EXIST c:\1.txt (
dsfadsf
echo %errorlevel%
)
Este es un comando.
Si no hay un retraso en la variable de inicio, lo que %errorlevel% determina es el comando if anterior: dir > c:\1.txt
El valor de retorno, porque la ejecución debe ser exitoso, por supuesto. El nivel de error es siempre 0.
Para solucionar este problema.
El retraso de la variable de inicio se puede solucionar.
El código es el siguiente:
@echo off
setlocal enableelayedexpansion
dir > c:\1.txt
si EXISTE c:\1.txt (
dsfadsf
echo !errorlevel!
)
asdfasdf p>
echo %errorlevel%
pausa