es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener líneas que empiezan con una palabra específica en cmd desde un archivo de texto?

Estaba intentando simular una red real con Packet Tracer. Por lo tanto, obtuve las URL de los sitios web en un dominio específico y las guardé en un archivo ASCII llamado WebSites-DB línea por línea, así:

www.google.com
stackoverflow.com

Luego utilicé el comando ping para obtener sus direcciones IP:

FOR /F "eol=#" %i in (WebSites-DB) do ping %1 -n 1 -w 1 1>> Ips.txt

Pero ping arroja varias líneas:

Pinging www.google.com [8.8.8.8] with 32 bytes of data:
Request timed out.

Ping statistics for 185.216.132.250:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),

Quiero solamente el nombre del sitio web, www.google.com, y su dirección IP, 8.8.8.8.

¿Cómo puedo obtener solo los datos de interés?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener solo el nombre del sitio web y su dirección IP, puedes usar el comando findstr para filtrar las líneas no deseadas y luego usar el bucle for para extraer la información relevante.

    El comando modificado se vería así:

    FOR /F "eol=# tokens=1,2 delims=[]" %i in ('ping /n 1 /w 1 %1 ^| findstr "["') do echo %i %j>>Ips.txt
    

    Explicación:

    • findstr se utiliza para filtrar solo las líneas que contienen la dirección IP entre corchetes.
    • En el bucle for, tokens=1,2 especifica que queremos extraer el primer y segundo token (nombre del sitio web y dirección IP).
    • delims=[] especifica el delimitador que queremos usar (corchetes).
    • %i se asigna el nombre del sitio web (primer token) y %j se asigna la dirección IP (segundo token).
    • echo %i %j escribe el nombre del sitio web y la dirección IP en el archivo Ips.txt.

    Este comando modificado te dará el resultado deseado con solo el nombre del sitio web y la dirección IP.

Comments are closed.