elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con for y set
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con for y set  (Leído 2,397 veces)
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Ayuda con for y set
« en: 27 Marzo 2009, 18:55 pm »

Hola nuevamente a todos.

En un bat necesito mostrar en pantalla el contenido de un archivo txt (el cual contiene rutas de archivos). Luego dar la opción de seleccionar cual de estos archivos desea ver. La idea que se me ocurre es guardar cada linea del txt en una variable diferente, la cual está determinada por un contador. Pero no me funciona como espero. Coloco comentarios tipo C++ para explicar un poco lo que hice.

Código:
:encontrados
set /A count=0
for /f "delims=\ tokens=1-6" %%A in (c:\temp.txt) do (
call:set
echo %count% ¯ %%D: %%F       //El contador se queda en cero
echo %rutacount%     //No se inicializó la variable para este ámbito?
set %rutacount%="%%A\%%B\%%C\%%D\%%E\%%F"
echo.
)
echo Termina el for
echo Ruta1: %ruta1%    //Existe, pero está vació
echo Ruta2: %ruta2%    //Existe, pero está vació
echo contador es %count%  //Ahora si muestra el contador en 2
pause
goto encontrados
...
...
:set
set /A count=count+1
set rutacount=ruta%count%
echo entro a countfor %count%
goto:EOF


Pero devuelve:
...
entro a countfor 1
0 » Simple: 2009-02-06_1_2254695_NI_805001157_EPS018_88_I.TXT
ECHO está desactivado.
La sintaxis del comando no es correcta.

entro a countfor 2
0 » Simple: 2009-03-05_1_2467997_NI_805001157_EPS018_88_I_2009-03.txt
ECHO está desactivado.
La sintaxis del comando no es correcta.

Termina el for
Ruta1:
Ruta2:
contador es 2
Presione una tecla para continuar . . .

**************************************
El contenido de c:\temp.txt es:

O:\X\X\Simple\X\2009-02-06_1_2254695_NI_805001157_EPS018_88_I.TXT
O:\X\X\Simple\X\2009-03-05_1_2467997_NI_805001157_EPS018_88_I_2009-03.txt

Gracias de antemano.

archivo bat completo:
http://es.geocities.com/dico916/b.bat.html


En línea

Pony-Magic

Desconectado Desconectado

Mensajes: 36



Ver Perfil
Re: Ayuda con for y set
« Respuesta #1 en: 27 Marzo 2009, 19:04 pm »

Código:
SetLocal EnableDelayEdexpansion
For /F "Tokens=*" %%T in (Archivo.txt) Do (
Set /a c+=1
Set Linea_!c!=%%T
)

te queda %Linea_1%, %linea_2%, etc...


En línea

Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: Ayuda con for y set
« Respuesta #2 en: 27 Marzo 2009, 20:12 pm »

Problema solucionado!

Código:
SetLocal EnableDelayEdexpansion
for /f "delims=\ tokens=1-6" %%A in (c:\temp.txt) do (
set /A count+=1
echo !count! ¯ %%D: %%F
set ruta!count!="%%A\%%B\%%C\%%D\%%E\%%F"
echo.
)


Gracias Pony-Magic. Me pueden explicar usos de setlocal y endlocal ?

En línea

Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: Ayuda con for y set
« Respuesta #3 en: 27 Marzo 2009, 22:36 pm »

Ahora tengo otro problema...
Digamos que el usuario digitó 2, osea uqe quiere ver el archivo e
Necesito que notepad %open% abra en el aplicativo notepad el valor guardado en %ruta2%. Pero no funciona.

Código:
...
set /p opc="> "                                   //El usuario ingresa 2
if not defined opc (goto encontrados)
set open=%%ruta!opc!%%
if %opc% GEQ 1 (
if %opc% LEQ %count% (
echo ruta!opc! ^= %%ruta!opc!%%  // Imprime "%ruta2%"
echo open ^= %open%                   // Imprime "%ruta2%"
notepad %open%                           //Intenta abrir el archivo "%ruta2%"
)
)
...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines