pasarle argumentos a un bat?

Iniciado por x64core, 21 Octubre 2012, 05:24 AM

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

x64core

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

Eleкtro

#1
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 by Elektro H@cker

 

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

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


Saludos








0x5d

Para pasar parámetros, debes utilizar: %1 %2 %3 %4, etc
Cada % es un parámetro diferente:
Código (dos) [Seleccionar]

echo Hola %1 %2

Lo usas como : comando.bat Javier Esteban
Salida:
Hola Javier Esteban

Si deseas utilizar más parámetros de los permitidos, utiliza %*
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

x64core