elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (SOLUCIONADO) Como implemento switches/modificadores a mi .bat? con %1 %2 %3?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) Como implemento switches/modificadores a mi .bat? con %1 %2 %3?  (Leído 3,620 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
(SOLUCIONADO) Como implemento switches/modificadores a mi .bat? con %1 %2 %3?
« en: 29 Marzo 2011, 10:03 am »

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í:

Código:
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
  1. Set unidad=%1
  2. Set newname=%2

Y funciona, pero no se como seguir...

Tambien he probado un:

Código
  1. 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


« Última modificación: 30 Marzo 2011, 00:13 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Como implemento switches/modificadores a mi .bat? con %1 %2 %3?
« Respuesta #1 en: 29 Marzo 2011, 23:26 pm »

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.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Como implemento switches/modificadores a mi .bat? con %1 %2 %3?
« Respuesta #2 en: 30 Marzo 2011, 00:12 am »

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:

Código:
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
« Última modificación: 30 Marzo 2011, 00:15 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines