Sorteo con batch [Ayuda]

Iniciado por Rikosky, 18 Febrero 2015, 16:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Rikosky

Me gustaria poner 10 nombres de los participates y que al empezar te pida tu nombre para que no te salgas tu mismo, hasta ahi bien, el problema es que una vez sale un nombre quiero que no vuelva a salir, si teneis alguna idea ayudarme por favor.
Para explicarme mejor, yo he hecho a partir de un archivo .txt he puesto los 10 nombres, uno por linea, ahora me gustaria saber como hacer para borrar una linea desde el batch y como mostrar una solo una linea desde el batch ya que lo estoy intentando con for /f "tokens=*" %%c in (amigo-invisible.txt) do (set amigo=%%c) pero muestra la ultima linea y no la linea que yo quiero.
Para empezar necesito un codigo para extraer la linea que yo le pida de un .txt y mostrarla en un batch

Eleкtro

#1
Cita de: Rikosky en 18 Febrero 2015, 16:52 PMPara empezar necesito un codigo para extraer la linea que yo le pida de un .txt y mostrarla en un batch

Aquí no se hacen códigos, se ayuda a resolver dudas específicas para que puedas hacerlo por ti mismo.

Mostrar:
Código (dos) [Seleccionar]
Type "archivo.txt" | Find /I "nombre a mostrar"

Eliminar:
Código (dos) [Seleccionar]
Type "archivo.txt" | Find /I /V "nombre a eliiminar"


Cita de: Rikosky en 18 Febrero 2015, 16:52 PMestoy intentando con for /f "tokens=*" %%c in (amigo-invisible.txt) do (set amigo=%%c) pero muestra la ultima linea

Obviamente, estás iterando las lineas del archivo, el valor de la variable se reescribe con cada linea, por ende el valor de la variable "amigo", al terminar el ciclo, será lo que haya escrito en la última linea.
Para resolver ese problema, simplemente, en la expresión del FOR /F ('...'), redirije la salida del archivo al comando FIND o FINDSTR de la forma que he mostrado, y así puedes setear tranquilamente esa variable.

Saludos!