(SOLUCIONADO) Como implemento switches/modificadores a mi .bat? con %1 %2 %3?

Iniciado por SuperDraco, 29 Marzo 2011, 10:03 AM

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

SuperDraco

Bueno, esto es la primera vez que se me ocurre, me gustaria que me sacaran de dudas...

He creado un batch que sirve para cambiar el nombre(Label) de cualquier dispositivo...

La letra de la unidad se guarda en una variable, el nuevo nombre que se le quiere asignar, en otra variable.

Tenemos 2 variables entonces...

%Unidad% y %NewName%

Ahora, yo lo que quiero es poder usar mi batch llamandolo desde el cmd, más o menos así:

Mybatch.bat C Pitoloko

Donde C sería la unidad, y el otro parametro seria el nuevo label...


Entonces ahora tengo el principio de mi batch así, con argumentos:


Código (dos) [Seleccionar]
Set unidad=%1
Set newname=%2


Y funciona, pero no se como seguir...

Tambien he probado un:

Código (dos) [Seleccionar]
For /f "Tokens=* delims=;" %%a in ("echo %1;%2") do echo %a & pause

Ahora vienen mis preguntas...

Cual es el método más sencillo para hacerlo correctamente?

Es la primera vez que pruebo de hacerlo y no me quiero equivocar xD



El caso es que el argumento %2 se debe entrecomillar para que se considere un argumento, una frase con espacios, no se considera un argumento entero a no ser que tenga comillas osea:

Frase con espacios
argumento %1=frase
Argumento %2=con
argumento %3=espacios

"frase con espacios "
Argumento %1=frase con espacios

Entonces como puedo buscar solamente las comillas con el comando FINDSTRo FIND en %2? quizas esto me ayude a seguir xD

Saludosss
No he vuelto, solo estoy de paso.

leogtz

A ver, no hay manera correcta de hacerlo, es tan sencillo como:

code.bat arg1 arg2 "argumento 3 con espacios"

%1 = arg1
%2 = arg2
%3 = argumento 3 con espacios

No te he entendido para qué quieres buscar comillas dobles en un argumento, las comillas dobles solo sirven para "encerrar el argumento", evita problemas.

set "arg3=%3"

arg3 guardará "argumento con 3 espacios" sin las comillas dobles, no tienes que buscar nada.

Ya cuando tienes asignadas las variables, lo que sigue es simplemente hacer las operaciones con dichas variables.
Código (perl) [Seleccionar]

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

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

SuperDraco

#2
Quería buscar las comillas para que no hubiera errores al ejecutar mi script, para confirmar que el argumento 3 se habia escrito bien, ejemplo:

Labeller.bat Unidad "Eti que ta" = Bien
Labeller.bat Unidad Eti que ta = Mal


Entonces solo quería saber si el argumento contenia comillas para confirmar que se habia escrito bien ahora, con el Set arg3 me has ahorrado muchos lios de cabeza, graciasss
No he vuelto, solo estoy de paso.