Redirecciones curiosas en lenguaje de comandosNo las he visto documentadas en ningún sitio de Microsoft ni en manuales de batch scripting, pero las he visto usadas en algún batch. Investigando sobre ellas:
comando || (grupo de sentencias)
comando && (grupo de setencias)
Bien, en la primera de ellas, el grupo de comandos se ejecuta si el comando anterior termina con un errorlevel distinto de cero.
La segunda, se ejecuta el grupo de sentencia si el comando termina con errorlevel 0.Veamos un ejemplo:
md; 2>nul || echo "hay un error"
md; es una instrucción imposible, por tanto sacará un error. Direccionamos el error a nul (2>nul) para no ver nada por pantalla. Pero como el comando termina con errorlevel distinto de cero, se ejecuta el echo y nos mostrará "hay un error".
Sirve igualmente para analizar errores en cualquier instrucción que devuelva un código de retorno, incluídas llamadas a procedimientos, por ejemplo:
call proceso1 parametro1 || (echo "error en proceso1" & call proceso_error)
--
|
13 - abril - 2005