Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dany3j en 1 Abril 2012, 17:17 pm



Título: [BATCH] Imprimir variables desde un .txt
Publicado por: Dany3j en 1 Abril 2012, 17:17 pm
Hola, como les va.

Tengo una pequeña duda para imprimir unas variables.

Tengo un .txt con lo siguiente.

Citar
%windir%
%appdata%
%time%
%date%

Entonces utilizo un for para leer el .txt e imprimirlo en pantalla, pero me imprime el texto leido %time% y no la fecha del sistema.

Alguna solución.  :huh:




Título: Re: [BATCH] Imprimir variables desde un .txt
Publicado por: Eleкtro en 1 Abril 2012, 23:52 pm
Prueba así:

Código
  1. @Echo OFF
  2. For /F "Tokens=*" %%# in (archivo.txt) do (Call :Command %%#)
  3.  
  4. :Command
  5. echo %*
  6. Goto :EOF


Salu2.


Título: Re: [BATCH] Imprimir variables desde un .txt
Publicado por: Dany3j en 3 Abril 2012, 17:48 pm
Gracias Pitoloko a funcionado correctamente.

Me puedes explicar porque no se puedo de la manera que yo lo hice.  :huh:

Luego de explicar podes dar por solucionado.


Título: Re: [BATCH] Imprimir variables desde un .txt
Publicado por: Eleкtro en 4 Abril 2012, 07:19 am
Me puedes explicar porque no se puedo de la manera que yo lo hice.  :huh:

Luego de explicar podes dar por solucionado.

Sinceramente es una peculiaridad bastante rara que nunca antes habia visto, Nunca me habia encontrado con el problema que tenías respecto a las variables, Pero sin duda alguna está relacionada con la expansión de las variables.
Supongo que de algún modo, Al setear el string "%windir%" dentro de la variable del FOR, Necesitas expandirla.

Si las variables en Archivo.txt fueran así:
Código:
!windir!
!appdata!
!homedrive!
etc...

Esto te serviría:
Código
  1. @Echo OFF
  2. setlocal enabledelayedexpansion
  3. For /F "Tokens=*" %%# in (archivo.txt) do (echo %%#)

Salu2.


Título: Re: [BATCH] Imprimir variables desde un .txt
Publicado por: Dany3j en 4 Abril 2012, 22:32 pm
A ok entonces podes cerrar el tema maestro.  ;)

Salu2