[Batch]Parámetro %1 nulo

Iniciado por WaAYa HaCK, 17 Junio 2011, 09:49 AM

0 Miembros y 1 Visitante están viendo este tema.

WaAYa HaCK

Hola a tod@s! Estaba haciendo un .bat y quería añadir varias opciones:
Código (dos) [Seleccionar]
wpm -s -i -h -l
Si añado algún argumento funciona, pero si no añado ninguno, me sale:
Código (dos) [Seleccionar]
No se esperaba GOTO en este momento.
Lo cual ya me lo esperaba, pero... ¿cómo puedo hacer para que, si no se indica el argumento %1 , que vaya a una etiqueta?

Muchas gracias, no sé si será con %ERRORLEVEL% o algo así...

Saludos!
Waaya
La cacatúa yoyó es nueva en el zoo!

leogtz

Podrías checar si está vacío:

if "%1"=="" ....
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

WaAYa HaCK

Eeeh... no me funciona  :P . Lo curioso es que si pongo:
Código (dos) [Seleccionar]
wpm ""
sí que me ejecuta el fragmento de código!

o sea: si el argumento 1 es "" haz esto...
La cacatúa yoyó es nueva en el zoo!

SuperDraco

#3
waaya tu Win XP funciona muy raro, y lo digo de verdad, no es normal como se comportaba en tu post anterior con el DIR... quizás ese mismo códigoo que usas si que funcionaria en win7... xD

¿Es winxp modificado? supongo que no... no se, pero por si acaso... haz las pruebas en un WinXP normal... nada de ediciones Lite...



Cita de: WaAYa HaCK en 17 Junio 2011, 09:49 AM
¿cómo puedo hacer para que, si no se indica el argumento %1 , que vaya a una etiqueta?

Puedes usar...

If not exist "%1" (goto :etiqueta)

If not defined "%1" (goto :etiqueta) (Bueno el defined nunca lo he probado con agumentos, no se si así se puede utilizar :/)

If %errorlevel% GTR 0 (echo ha ocurrido un ERROR xD...)
No he vuelto, solo estoy de paso.

WaAYa HaCK

Esque mi XP se toma lo mismo que el gato de tu avatar antes de iniciarse  :xD

Sí, he probado con:
Código (dos) [Seleccionar]
if not exist %1 goto null
y funciona.

Es un Win XP Professional SP3, no sé qué pasa a veces...

Bueno, gracias a los dos por ayudarme. Me encanta el tema de scripting  ;D

Saludos!
Waaya
La cacatúa yoyó es nueva en el zoo!

leogtz

#5
if [not] exist es para checar si existen archivos, no parámetros posicionales, pero bueno, si te funciona, adelante.

CHICOS: Creo que si van a hacer scripting sobre Windows es necesario que dejen atrás BATCH y volteen a ver PowerShell que es mucho más potente.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

SuperDraco

Cita de: Leo Gutiérrez. en 17 Junio 2011, 20:20 PM
CHICOS: Creo que si van a hacer scripting sobre Windows es necesario que dejen atrás BATCH y volteen a ver PowerShell que es mucho más potente.

Que pereza me da aprender eso :xD, de todas formas voy a ver si encuentro algún script que me sirva para subir un archivo a mediafire xD


aqui dejo unos scripts de powershell por si se los quiere mirar waaya...

http://powershell.com/cs/
No he vuelto, solo estoy de paso.

leogtz

pitoloko, es necesario aprenderlo, algún día tienes que dejar Batch.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

WaAYa HaCK

Hmmm... cualquier aporte siempre es bienvenido! Leo, voy a mirar eso del PowerShell, lo que ahora ando metido en Python y no sé si podré compaginarlo. Espero que sí.

Venga pitoloko, hasta el momento no he conocido a persona en la Tierra más perezosa que yo...  :P

Gracias!
La cacatúa yoyó es nueva en el zoo!

leogtz

Hace tiempo que estoy diciéndole a la gente que ya deje Batch, aunque nos sirve para algunas tareas, jamás se va a vivir de esto, creanme, o ¿cuándo han visto que contraten a un programador batch?, NO. Así que creo que si has profundizado algo en Batch es hora de dejarlo por otra cosa, por favor, tomen el consejo. Abrirse a un lenguaje más completo es abrirse a otro mundo, al ser más completo te permite explorar otras cosas de la ciencia de la computación.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com