Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: x64core en 21 Octubre 2012, 05:24 am



Título: pasarle argumentos a un bat?
Publicado por: x64core en 21 Octubre 2012, 05:24 am
Hey chicos alguien sabe como puedo pasarle argumentos a un archivo bat y que los recibe y puedo manipularlos en ejecucion?
por ejemplo lo que quiero hacer es por tomar varios archivos de texto, y arrastrarlos hacia el bat y luego en mi bat poder manipularlos.

por ejemplo en mi bat llamo a un programa pasandole como parametros el nombre del archivo de texto

\xxx\xxx\programa textfile.txt

normalmente escribo los nombres de los archivos de texto que quiero modificar cada vez que quiero manipularlos pero me gustaria saber si esto es posible y como para ahorrarme mucho tiempo, cualquier ayuda gracias chicos  :)


Título: Re: pasarle argumentos a un bat?
Publicado por: Eleкtro en 21 Octubre 2012, 09:41 am
Arrastrar un archivo y tomarlo como argumento es muy fácil.

La cosa se complica si quieres arrastrar VARIOS archivos, ya que todo se junta en una sola linea, y los archivos con espacios en el nombre llevarán comillas dobles ", y los que no tengan espacios en el nombre no llevarán delimitador, así que hay que comerse la cabeza para separar todos los elementos sin saber si habrá elementos con comillas dobles o no...

Aquí tienes un ejemplo muy claro con el que te puedes guiar:

[Batch] [Aporte] (O eso creo xD) Consola de reciclaje v1.0  (http://foro.elhacker.net/empty-t352556.0.html) by Elektro H@cker

(http://img341.imageshack.us/img341/5403/prtscrcapturen.jpg)  (http://img526.imageshack.us/img526/2108/prtscrcapture2f.jpg)

PD: te dejo este for delimitador de comillas dobles por si llegas a necesitarlo:

Código
  1. setlocal EnableDelayedExpansion
  2. set "var=one"two"three"
  3. FOR /f tokens^=1-3^ delims^=^" %%a in ("!var!") do echo %%a--%%b--%%c

Saludos


Título: Re: pasarle argumentos a un bat?
Publicado por: 0x5d en 21 Octubre 2012, 19:30 pm
Para pasar parámetros, debes utilizar: %1 %2 %3 %4, etc
Cada % es un parámetro diferente:
Código
  1. echo Hola %1 %2
  2.  
Lo usas como :
Código:
comando.bat Javier Esteban
Salida:
Código:
Hola Javier Esteban

Si deseas utilizar más parámetros de los permitidos, utiliza %*


Título: Re: pasarle argumentos a un bat?
Publicado por: x64core en 22 Octubre 2012, 05:06 am
Gracias era tan facil  :)