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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BATCH - Variables seleccionables desde archivo (ayuda).
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BATCH - Variables seleccionables desde archivo (ayuda).  (Leído 6,122 veces)
petaspam

Desconectado Desconectado

Mensajes: 5


Ver Perfil
BATCH - Variables seleccionables desde archivo (ayuda).
« en: 18 Marzo 2010, 23:05 pm »

Hola buenas.

Es mi primer post y no se donde colocarlo exactamente, pido perdón de antemano si me equivoco. Ya hace tiempo q observo el foro y ya era hora de escribir algo y que mejor que el tema que me concierne.


El caso es que tengo de hacer un bat que por un lado liste en pantalla las lineas que componen un archivo y las numere (1 - linea1, 2 - linea2...); y después te pregunte que pulses el numero de la linea que te interesa y la use como variable para otros fines posteriores.

Es muy complicado el asunto? algún alma que se apiade de un pobre mortal... xD

Muchas gracias a tod@s.

Un Saludo.


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #1 en: 19 Marzo 2010, 04:32 am »

Código:
set /a linea=0
for /f "tokens=*" %%x in (file.txt) do (
call :show %%x
)
goto:eof

:show
set /a linea+=1
echo %linea% : %*
goto:Eof
Las numera.

Explica un poco más lo que quieres hacer.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #2 en: 19 Marzo 2010, 16:09 pm »

el quiere por ejemplo, despues que las numeras por pantalla, poder seleccionarlas, por ejemplo que le pregunte algo como:

Código
  1. Linea 1 : Hola
  2. Linea 2 : Asdf
  3. Linea 3 : Lapiz
  4.  
  5. Set /p "LineaAUsar=Seleccione linea :"


Y que si el presiona 3, la linea 3 quede como una variable para que el la pueda usar en otra cosa.-


:)
En línea

Asdf debería ser algún tipo de función.
---saster---

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #3 en: 19 Marzo 2010, 18:58 pm »

creo que tu lo que quieres es esto :D

cargar un fichero en arrays

Código
  1. @echo off
  2. for /f "tokens=*" %%@ in (file.txt) do (
  3. set /a "array[contador]+=1"
  4. call set "array[%%array[contador]%%]=%%@"
  5. )
  6. set "array"
  7. pause>nul

si tenemos por ejemplo un fichero file.txt con este contendido


Citar
hola
si
mas tarde
xd

la salida del bat será

Citar
array[1]=hola
array[2]=si
array[3]=mas tarde
array[4]=xd
array[contador]=4

despues lo utilizas para hacer cualquier cosa :P

tambien se puede hacer con la opcion skip

saludos
En línea

petaspam

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #4 en: 20 Marzo 2010, 16:27 pm »

MADRE MIAAA que maquinas... y que rapido... estoy alucinad con vosotr@s chic@s quien pudiera llegar a vuestro nivel.


Básicamente es esto lo que necesitaba, el poder listar en pantalla las lineas de un archivo, lo único que no entiendo es como hacer para que me pregunte después que linea quiero usar como variable; (vamos a explicar un poco mas esquemático lo que necesito):

Tenemos un programa para trabajar con ciertos archivos, estos archivos debemos abrirlos en cada caso con ciertos comandos según lo que necesitemos.
Ejemplo:  Programa.exe /a /b /c /d archivo.dat

El caso es que nos gustaría automatizar un poco el asunto y se nos ocurrió hacerlo en bat; el Bat debe hacernos ciertas preguntas básicas y luego comprobar que archivos *.dat dispone en el momento de la ejecución del mismo y preguntarte cual quieres lanzar.


Se nos ocurrió el Esquema siguiente:

1º: Crear un archivo (file.txt) con el contenido *.dat de un directorio del Disco.
2º: Listar en pantalla el contenido del archivo (file.txt)
3º: Seleccionar el numero de la linea que queremos usar
4º: Bat Pregunta que comandos necesitamos según lo qu queremos hacer.
5º: Lanza el Programa.exe con todas las variables seleccionadas anteriormente
6º: Salir


Por tanto quedaria algo parecido a esto:



Código:
@echo off
cls

@rem 1º: Crear un archivo (file.txt) con el contenido de un directorio del Disco.

dir /B *.dat >file.txt

@rem 2º: Listar en pantalla el contenido del archivo (file.txt).

??????

@rem 3º:  Seleccionar el numero de la linea mostrada en pantalla que queremos usar como variable (%archivoDAT%).

??????

@rem 4º:  Despues, Bat Pregunta que comandos necesitamos según lo que queremos hacer.

echo Seleccione una Opcion:
echo. 1 = extras.cfg
echo. 2 = extras2.cfg
echo.
set /p "Variable1= : "  ' Comment
if %Variable1% EQU 1 (set cfg=extras.cfg)
if %Variable1% EQU 2 (set cfg=extras2.cfg)

# Así con todas las Variables necesarias.


@rem 5º:  Lanza el Programa.exe con todas las variables seleccionadas anteriormente.

Programa.exe %Variable1% %Variable2% %Variable3% %archivoDAT%

@rem 6º:  Salir
exit

Espero les sirva para entender lo que quiero decir.

Gracias a todos por su inestimable ayuda.
En línea

---saster---

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #5 en: 20 Marzo 2010, 18:49 pm »

mostrar todos los archivos que acaben con dat

Código:
dir /s /b *.dat

mostrar el contenido de un fichero

Código:
type fichero.txt

mostrar la linea en pantalla, te puse un codigo para ver las lineas cargadas en variables

lo demas parece que lo tienes
En línea

petaspam

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: BATCH - Variables seleccionables desde archivo (ayuda).
« Respuesta #6 en: 22 Marzo 2010, 23:59 pm »

Excelente vi lo del codigo:

Código:
@echo off
for /f "tokens=*" %%@ in (file.txt) do (
set /a "array[contador]+=1"
call set "array[%%array[contador]%%]=%%@"
)
set "array"
pause>nul
exit

o el de Leo tambien es valido (almenos para mostrarlo):

Código:
set /a linea=0
for /f "tokens=*" %%x in (file.txt) do (
call :show %%x
)
goto:eof

:show
set /a linea+=1
echo %linea% : %*
goto:Eof

Pero ahora me faltaría saber como implementarlo dentro del codigo del Script y añadirle la función de elección; por si no lo entendieron, que al escribir el numero de la linea el script coja como variable dicha linea. O dicho de otra manera, necesito una parte de escript que le insertes un numero (x) y el coja dicha linea (x) del archivo como variable.

Espero averme explicado, por todo lo demas lo dicho sois unas maquinas.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH] asignar variables con set desde un for /f[Solucionado]
Scripting
haveavigar 5 7,191 Último mensaje 14 Enero 2011, 20:31 pm
por leogtz
[BATCH] Imprimir variables desde un .txt
Scripting
Dany3j 4 6,033 Último mensaje 4 Abril 2012, 22:32 pm
por Dany3j
Llamar variables vacías desde otro archivo .php
PHP
hackmastter 1 2,432 Último mensaje 18 Agosto 2015, 23:44 pm
por MinusFour
Crear un batch desde otro batch con variables
Scripting
Javiito_32 3 3,151 Último mensaje 26 Septiembre 2018, 17:52 pm
por Javiito_32
Nesesito reproducir un archivo .mp3 desde un archivo BATCH (.bat)
Seguridad
facukaku021 3 5,815 Último mensaje 17 Octubre 2022, 16:49 pm
por Mr.Byte
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines