[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.

Preguntas similare

Leer las respuestas

#21 Kravek
15/04/2005 - 19:25 | Informe spam
Sería muy interesante!! porque a veces muchos de tus scripts no los
entiendo... (y eso que sé de scripting en linux/unix y en ms-dos del viejo
también sabía algo..)

"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:
Por desgracia la informacion se encuentra totalmente suelta,
incompleta..

Ahora bien, he pensado en ir preparando yo mismo una serie de articulos,
en plan minilibro que iré publicando poco a poco en estos grupos...

O sea estad atentos :-)

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.



"Kravek" <rubengARROBAkailea4.net> wrote in message
news:
Podrías recomendar páginas o info de Batch Scripting??

"JM Tella Llop [MVP Windows]" escribió en el
mensaje news:%
y no es de ahoraes desde el primer NT desde el NT 3.0

lo que pasa es que el batch scripting es el gran desconocido

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.



"JM Tella Llop [MVP Windows]" wrote in message
news:
set /a var=2+2+2
set /a var+=i%%4
set /a var+=i*2-(5*j%%100)

y el while lo tienes con un for (hay 4 formas del for y una es
como el while)

las tienes.. :-)

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.



"F" wrote in message
news:%
Parece que la consola (el cmd) se parece cada vez mas a los shell
de unix, ojala se parecieran mas, sobre todo en algunas cosas, como
asignar resultados de operaciones a apariables, eso ya seria genial
(estilo a=`operacion`) o que se añadiera un while, por ejemplo.

Un saludo


"JM Tella Llop [MVP Windows]" escribió en el
mensaje 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.

























Respuesta Responder a este mensaje
#22 Kravek
15/04/2005 - 19:25 | Informe spam
Sería muy interesante!! porque a veces muchos de tus scripts no los
entiendo... (y eso que sé de scripting en linux/unix y en ms-dos del viejo
también sabía algo..)

"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:
Por desgracia la informacion se encuentra totalmente suelta,
incompleta..

Ahora bien, he pensado en ir preparando yo mismo una serie de articulos,
en plan minilibro que iré publicando poco a poco en estos grupos...

O sea estad atentos :-)

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.



"Kravek" <rubengARROBAkailea4.net> wrote in message
news:
Podrías recomendar páginas o info de Batch Scripting??

"JM Tella Llop [MVP Windows]" escribió en el
mensaje news:%
y no es de ahoraes desde el primer NT desde el NT 3.0

lo que pasa es que el batch scripting es el gran desconocido

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.



"JM Tella Llop [MVP Windows]" wrote in message
news:
set /a var=2+2+2
set /a var+=i%%4
set /a var+=i*2-(5*j%%100)

y el while lo tienes con un for (hay 4 formas del for y una es
como el while)

las tienes.. :-)

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.



"F" wrote in message
news:%
Parece que la consola (el cmd) se parece cada vez mas a los shell
de unix, ojala se parecieran mas, sobre todo en algunas cosas, como
asignar resultados de operaciones a apariables, eso ya seria genial
(estilo a=`operacion`) o que se añadiera un while, por ejemplo.

Un saludo


"JM Tella Llop [MVP Windows]" escribió en el
mensaje 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.

























email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida