Vota por nosotros en el ranking web que participamos

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Octubre 11, 2008, 07:05:52
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: parametrizacion 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: parametrizacion  (Leído 276 veces)
|Shadow|
Dein Nulls
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 910


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil WWW Email
« en: Junio 10, 2008, 11:43:37 »

  Al ejecutar un .bat, .cmd o al llamar a una funcion dentro de un bat (orden call), existen un tipo de variables que son definidas antes de que este se ejecute, estas son llamadas parametros y se definen con %0, %1, %2, %3, %4, %5, %6, %7, %8 y %9.

-Sintaxis de la llamada de un programa:
*nota: c:\> ~ se refiere a que se esta trabajando x consola.

sintaxis:
c:\>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

Entonces tenemos que:
Ej1.:
c:\>prog.bat
%0 = ruta del programa

Ej2.:
c:\>prog echo hola
%0 = ruta del programa
%1 = echo
%2 = hola

Ej3.:
---------c:\>prog.bat---
 @echo off
%1 %2
 @echo on
----------fin--

c:\>prog echo hola
hola
c:\>

exp.: esto sucede ya que
%1 = echo
%2 = hola
entonces el programa ejecuta:
c:\>%1 %2  => c:\>echo hola
esto devuelve: "hola"

Ej4.::
------------c:\e1.bat----
 @echo off
if %1==at (echo He sido llamado por at desde las %2
                  pause
                  exit)
at 12:30 "c:\e1.bat at %time%"
exit
---------------fin---

Si en una llamada, un parametro no es definido, su valor es nulo.
c:\>prog echo hola
%1 = echo; %2 = hola; %3 =; %4 =; %5 =; %6 =; %7 =; %8 =; %9 =

Saludos
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion





Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Reglamento del Foro
     Linux  Registered User #473016
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 869


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #1 en: Junio 10, 2008, 02:31:14 »

Buen tuto, podemos juntarlo con el que hice sobre la parametrizaciñon en Batch y se publicó en la E-Zine, me gusta tu forma de explicar, eres rápido y conciso; yo sin embargo siempre me entretengo a epxlicarlo todo. xD

Bytes, Espectro Infernal.
En línea





|Shadow|
Dein Nulls
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 910


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil WWW Email
« Respuesta #2 en: Junio 10, 2008, 02:39:45 »

Pos claro! .. por mi esta perfecto que unamos los tutos. . . xD .. y sip mi manera de explicar ay veces no muxos la entienden, esa es la desventaja .. :s ...

Saludos!
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion





Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Reglamento del Foro
     Linux  Registered User #473016
:. Soldier .:
Colaborador
*****
Desconectado Desconectado

Mensajes: 924


<--Vencer es confiar en si mismo-->


Ver Perfil WWW Email
« Respuesta #3 en: Junio 10, 2008, 04:29:39 »

tshadow:
Pienso que sera mejor si juntaras todos tus nuevos post publicados hasta ahora para hacer un gran tutorial, asi se aprenderia mas y al final creo que ahora si en el Area de retos batch se armaria alguno XD, pero mas se haria para aprender, en lo personal me gustaria.

Salu2
En línea


Visita mi Blog: ↓

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

|Shadow|
Dein Nulls
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 910


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil WWW Email
« Respuesta #4 en: Junio 10, 2008, 05:14:18 »

si ps ... en eso estamos espectro y yo, ya veran que en unos dias ya se formalizara en manual/tutorial de BATCH de este foro con una gran recopilacion de tecnicas basicas-avanzadas.

y ps claro... los esperamos en los duelos

Saludos!
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion





Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Reglamento del Foro
     Linux  Registered User #473016
ECDundy
Habitual
*****
Desconectado Desconectado

Mensajes: 210


throw new exception(":)");

erick_cartman_ok
Ver Perfil WWW Email
« Respuesta #5 en: Julio 05, 2008, 05:42:50 »

Tengo 1 duda.
- si deseo asignarle una variable a un parametro. Luego como llamo al parametro.
por ejemplo
set %1=blue
echo %%1%
rem esto no devuelve blue
echo %%%1%
rem esto no devuelve blue
La importancia que radica en poder hacer esto esta en que si uno crea una etiqueta y desea que su uso no dependa de una unica variable y se pueda seguir usandola sin necesidad de resetear parametros anteriores. Permita entonces a la etiqueta establecer un nombre de uso.
por ejemplo
set %1Project=red
luego el poder trabajar con %1 llamando al valor que se le ha asignado.
De esta manera En un codigo de chronometro. El chronometro trabaja con una variable. Pero en ocaciones hay necesidad de usar mas de un chronometros al mismo tiempo. Luego no hay nada mejor que asignarle un nombre de identificacion al chronometro.
Por ejemplo
Chronometro Borrado Start
del ...
Chronometro Copiado Start
copy ...
------
Chronometro Borrado Stop
Chronometro Copiado Stop
rem Quedaria una variable definida por defecto en cada caso. O sea
%TimeBorrado%
y %TimeCopiado%
que no seria mas que poner
set Time%1=(Un tiempo)
Finalizando quedaria
set /a Total=%TimeBorrado%+%TimeCopiado%
echo Tiempo Total de ejecucion %Total%
La idea central seria lograr economizar las etiquetas y la interactividad del codigo
« Última modificación: Julio 05, 2008, 06:02:31 por ECDundy » En línea

|Shadow|
Dein Nulls
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 910


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil WWW Email
« Respuesta #6 en: Julio 05, 2008, 07:49:05 »

usa call de esta forma:

Código:
@echo off
call :st hola
echo %hola%&& pause&& exit

:st
call set %1=blue
goto :EOF

Saludos!
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion





Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Reglamento del Foro
     Linux  Registered User #473016
:: SmartGenius™ ::
C.U.H. VIP Member
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2233


Yo estuve en el Campus Party.....lo Mejor..xD

smartgenius@el-hacker.org
Ver Perfil WWW
« Respuesta #7 en: Julio 05, 2008, 09:05:23 »

usa call de esta forma:

Código:
   @echo off
call :st hola
echo %hola%&& pause&& exit

:st
call set %1=blue
goto :EOF

Saludos!

mmm... interesante, esto esta muy bueno, asi nos creamos nuetras propias variables parametros xD

Saludos.
« Última modificación: Julio 05, 2008, 09:25:01 por :: SmartGenius :: » En línea



MOVISTAR INFORMA Q SU MOVIL ESTA POSEIDO X SATAN Y PUEDE Q EMPIECEN A APARECER C0ssAS RraRASx en lll oS SMS.j/;?((932"?>><:9?.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Primer WARGAME - Reto Crackme en Batch......Participa¡¡


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
CUH - Malware Removal Tool....Script AntiBichos xD



Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Vota ¡¡  Que Marca de Movil consideras que es la Mejor ?
ECDundy
Habitual
*****
Desconectado Desconectado

Mensajes: 210


throw new exception(":)");

erick_cartman_ok
Ver Perfil WWW Email
« Respuesta #8 en: Julio 06, 2008, 12:39:43 »

si, esa es la forma logica que se me habia ocurrido. Pero no es lo que estoy planteando ya que no es la solucion. El problema es que desde tu etiqueta st no puedes llamar al parametro %1 como una variable a la que les has asignado un valor.
Que sucede:
Si tu etiqueta trabaja con una variable no la puedes llamar 2 veces ya que setearia el resultado de la variable en la primera vez que la llamastes.
En especial si la etiqueta te guarda un valor en una variable como en el caso del chronometro para poder decir el tiempo. llamando nuevamente a la etiqueta la variable con la que trabajabas en el primer caso seria por defecto la misma y tomaria un nuevo valor. Por tanto cuando vuelves a llamar a la etiqueta primaria te daria un resultado erroneo.
Parece que no se puede hacer nada para resolver este problema no ?. A no ser que cambies la logica de tu codigo pero en conclucion perderias interactividad.

En línea

Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: parametrizacion « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC