[TIP] Redirecciones curiosas en lenguaje de comandos.

13/04/2005 - 23:00 por JM Tella Llop [MVP Windows] | Informe spam
No las he visto documentadas en ningun sitio de Microsoft ni en manuales de
batch scripting, pero las he visto usadas en algunao 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 instruccion 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 errorleve distinto de cero, se ejecuta el echo y nos mostrará
"hay un error".

Sirve igualmente para analizar errores en cualquier instruccion que devuelva
un codigo de restorno, incluidas llamadas a procedimeintos, por ejemplo:

call proceso1 parametro1 || (echo "error en proceso1" & call proceso_error)



Jose Manuel Tella Llop
MVP - Windows
jmtella@XXXcompuserve.com (quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.
 

Leer las respuestas

#1 Alezito [MS MVP]
13/04/2005 - 23:08 | Informe spam
'-)

Cordialmente,

Alejandro Curquejo
Microsoft MVP Windows

Microsoft TechNet
Recursos, Soporte y Comunidad TI
http://www.microsoft.com/spain/tech...efault.asp


"JM Tella Llop [MVP Windows]" wrote in message
news:%
No las he visto documentadas en ningun sitio de Microsoft ni en manuales
de batch scripting, pero las he visto usadas en algunao 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 instruccion 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 errorleve distinto de cero, se ejecuta el echo
y nos mostrará "hay un error".

Sirve igualmente para analizar errores en cualquier instruccion que
devuelva un codigo de restorno, incluidas llamadas a procedimeintos, por
ejemplo:

call proceso1 parametro1 || (echo "error en proceso1" & call
proceso_error)



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.




Preguntas similares