Parámetros en Batch [AYUDA]

Iniciado por .:Xx4NG3LxX:., 21 Diciembre 2019, 23:21 PM

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

.:Xx4NG3LxX:.

NECESITO AYUDA!!!

Hola hackers, necesito ayuda con el temita este de los parámetros.

Lo que quiero saber exactamente es como definir

  • %1
  • %2... etc

CUALQUIER AYUDA SE AGRADECE, GRACIAS!!!
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Serapis

#1
Son variables... las variables toman valores.

Dado que no son específicas a ningún caso concreto, esto es son genéricos, el nombre es irrelevante, excepto su orden... %1 representa el valor asignado a dicha variable (parámetro), el %2 representa al segundo parámetro etc...

por ejemplo supongamos que se quiere llamar a un programa que va a comprimir, y aparte de la ruta permite ciertos parámetros...
Se podría invocar como:
programa.exe "ruta..." x 1 -d

un bat por ejemplo, representará la ruta con %1, el parámetro x con %2, el valor del tercer parámetro (ese '1'), con %3 y el valor del parámetro '-d' se asignará a %4...

Supongamos que el programa también decidiera interpretar la ruta en otro orden, podría asignarle un prefijo para reconocerlo (pongamos 'r')
...entonces, todavía se podría crear una entrada al menú contextual así:
programa.exe "x" "5" "-de" "r=" %1
es decir el menú contextual recibirá una ruta (1 fichero , una carpeta o más varios), se asigna a ese %1... nota que el resto de parámetros quedan fijos en el menú cotextual... (observa el '5' y el '-de')

Más retorcido aún, esa entrada al menú contextual, podría derivarse a un bat y el bat enviarlo a un ejecutable...
Entonces ese bat asignaría estos valores a cada parámetro según el orden enviado desde el menu contextual (señalado más arriba), que invocando al ejecutable pondría:
programa.exe %1 %2 %3 %4

Ahora la ruta estaría en el parámetro %4, porque es ese el orden en que se fijó en el menú contextual y su valor (contenido) sería: 'r="C:\la ruta\adonde sea\fichero.ext" ', dado el caso que el fichero seleccionado cuando el menú contextual lo active fuere: "C:\la ruta\adonde sea\fichero.ext"

En cualquier caso considera que el %0 es el propio ejecutable (que queda filtrado), y todo lo que venga detrás son los parámetros, lo habitual es recibir al menos un parámetro (típicamente una ruta), pero incluso ninguno... solo invocar el programa lo abre...

En resumen, cada variable así representa el enésimo parámetro recibido (considerado como tal).

.:Xx4NG3LxX:.

#2
Muchas gracias por tu ayuda!!!

Si tengo otra duda te aviso, ok?

Me podrías hacer un ejemplo? Si no es mucho pedir? Es para ver si entendí del todo bien. :xD

DE VERDAD MUCHAS GRACIAS
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Eleкtro

#3
Cita de: NEBIRE en 22 Diciembre 2019, 01:46 AM
un bat por ejemplo, representará la ruta con %1, el parámetro x con %2, el valor del tercer parámetro (ese '1'), con %3 y el valor del parámetro '-d' se asignará a %4...

Te olvidaste de la variable de parámetro '%0', que es la que en realidad representa la ruta de inicio del script. Siguiendo tu ejemplo genérico, si hablásemos del uso de estas variables en el registro de Windows con la intención de asociar un programa que tome como parámetro la ruta actual del archivo o directorio seleccionado, ahí si que se especificaría '%1'.

Aparte, el valor de estas variables se puede definir en el script de forma arbitraria para enviar los argumentos que una subrutina deba procesar.

Más info aquí: https://foro.elhacker.net/scripting/tema_bloqueado_hasta_finalizar_el_tuto_tutorial_extendido_de_aprendizaje_batch-t375135.0.html;msg1797955#msg1797955

Y aquí: https://ss64.com/nt/syntax-args.html

Saludos








.:Xx4NG3LxX:.

Muchísimas gracias!! De verdad. Me sirvió mucho.

Código (delphi) [Seleccionar]
GRACIAS
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Serapis

Cita de: Eleкtro en 24 Diciembre 2019, 10:47 AM
Te olvidaste de la variable de parámetro '%0', que es la que en realidad representa la ruta de inicio del script. Siguiendo tu ejemplo genérico, si hablásemos del uso de estas variables en el registro de Windows con la intención de asociar un programa que tome como parámetro la ruta actual del archivo o directorio seleccionado, ahí si que se especificaría '%1'.
Pués no, no lo olvidé...

Si lees más abajo, verás que puse esto:
Cita de: NEBIRE en 22 Diciembre 2019, 01:46 AM
...
En cualquier caso considera que el %0 es el propio ejecutable (que queda filtrado), y todo lo que venga detrás son los parámetros ...