Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: haveavigar en 12 Enero 2011, 23:14 pm



Título: [BATCH] asignar variables con set desde un for /f[Solucionado]
Publicado por: haveavigar en 12 Enero 2011, 23:14 pm
Estoy haciendo esto para bajar galerias de una pagina pero
me trabe en el siguiente script:
Código
  1. @echo off
  2. set /a contador=1
  3. setlocal enabledelayedexpansion
  4. for /f "usebackq eol=- delims=^=>/ tokens=6,12,13,14" %%A in (`find /i "prev.jpg" masdiosas.php@id^=10123`) do (
  5. @echo !contador!=%% style="color: #448888;">A_%%B_%%C_%%D
  6. @set /a contador+=1
  7. )
  8.  

Este script devuelve esto:
Citar
1=17330"_2010_12
2=17320"_2010_12
3=17307"_2010_12
4=17298"_2010_12
5=17287"_2010_11
6=17266"_2010_11
7=17244"_2010_11
8=17225"_2010_11

lo que quiero hacer es que los numeros del uno al ocho sean las variables,
intente asignar poniendo la instruccion
Código
  1. @set !contador!=%% style="color: #448888;">A_%%B_%%C_%%D
adentro del DO pero el set no lo deja poner,
tampoco funciona poner "!contador!"

Bueno, eso es todo, espero puedan ayudarme, saludos.


Título: Re: [BATCH] asignar variables con set desde un for /f
Publicado por: haveavigar en 13 Enero 2011, 00:22 am
este codigo devuelve solo la ultima linea
de temp.txt, lo que intento es sacar las comillas despues de los primeros
numeros,
Tengo que usar "setlocal enabledelayedexpansion" y hago referencia a la variable con !variable!, de esa forma no la puedo asignar

Código
  1. for /f "" %%A in (temp.txt) do (
  2. set sacar=%%A
  3. set sacado=%sacar:"=%
  4. @echo %sacado% >> actual.txt
  5. )

este es el txt:
Citar
17330",2010/12
17320",2010/12
17307",2010/12
17298",2010/12
17287",2010/11
17266",2010/11
17244",2010/11
17225",2010/11



Título: Re: [BATCH] asignar variables con set desde un for /f
Publicado por: haveavigar en 13 Enero 2011, 01:04 am
las variables se borran cuando termina el batch, se puede ver en este script:
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n = 1
  4. for /L %%i in (1,1,5) do (
  5. set /a contador = !contador! + %% style="color: #448888;">i
  6. if "!contador!"=="4" set cinco=Variablecinco
  7. echo !contador!
  8. )
  9. echo %cinco%



Título: Re: [BATCH] asignar variables con set desde un for /f
Publicado por: leogtz en 13 Enero 2011, 01:13 am
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%_ in (temp.txt) do (
  4. set "line=%%_";
  5. set line=!line:"=!
  6. echo !line!
  7. )


Citar
C:\>type temp.txt
17330",2010/12
17320",2010/12
17307",2010/12
17298",2010/12
17287",2010/11
17266",2010/11
17244",2010/11
17225",2010/11

C:\>code.bat
17330,2010/12
17320,2010/12
17307,2010/12
17298,2010/12
17287,2010/11
17266,2010/11
17244,2010/11
17225,2010/11

C:\>


Para tu primera duda prueba esto:
Código
  1. @echo off
  2.  
  3. setlocal enabledelayedexpansion
  4. set /a contador=1
  5. for /f "usebackq eol=- delims=^=>/ tokens=6,12,13,14" %%A in (`find /i "prev.jpg" masdiosas.php@id^=10123`) do (
  6. set line_!contador!=% style="color: #448888;">% style^="color: #448888;"^>A_%%B_%%C_%%D
  7. set /a contador+=1
  8. )
  9.  
  10. set line_
  11.  

Es imposible ayudarte con la primera duda si no pones el contenido del archivo que estás trabajando y qué es lo que quieres obtener.


Título: Re: [BATCH] asignar variables con set desde un for /f
Publicado por: haveavigar en 14 Enero 2011, 19:38 pm
ah ok, el segundo ejemplo funciona!, yo ponia
en el comando "set" la variable !contador!=...  , sola, sin nada.

gracias por tu respuesta Leo, saludos.
trabajas en algo que tenga que ver con programacion??


Título: Re: [BATCH] asignar variables con set desde un for /f
Publicado por: leogtz en 14 Enero 2011, 20:31 pm
Cita de: haveavigar
gracias por tu respuesta Leo, saludos.
trabajas en algo que tenga que ver con programacion??


De nada. No, no trabajo de esto, es lo que yo quisiera, trabajar de esto, pero lamentablemente todavía no tengo el placer.

Saludos.