Bat para lanzar ping listado de maquinas

Necesitaría un bat para que me lance un ping de las ips que tengo en un fichero y me devuelva los valores en un .txt con la información que muestra la consola ( las ips son de diferentes rangos)

1 Respuesta

Respuesta

A ver si lo que se dijo aquí te sirve:
Hacer ping de forma automática a un listado de direcciones

Si no te sirve del todo dinos que cosas pueden valerte y cuales no.

buenos dias, probe ese script que me mandaste y me da error :

El sistema no puede encontrar el archivo equipos.txt.
El sistema no puede encontrar el archivo especificado.
Presione una tecla para continuar . .

No entiendo muy bien, cambie el nombre al script lo deje así:

@ECHO OFF
IF EXIST PROCESO.LOG del PROCESO.LOG
FOR /F "tokens=1 delims=," %%a in (equipos.txt) do call :PROCESO2 %%a
TYPE PROCESO.LOG
Pause

Le metí pause para ver el error, también probé a meter la ruta de donde esta equipo.txt y me dice que no encuentra el lote de proceso2.log

Encontré esto :

@echo off
del /q mal.txt
del /q bien.txt
for /f %%a in (dirip.txt) do (
echo Probando %%a
ping %%a -n 4 | find "TTL" > nul
if errorlevel 1 (echo %%a >>mal.txt) else echo %%a >>bien.txt
)
echo Estas IP han respondido bien:
type bien.txt
echo Estas IP han respondido mal:
type mal.txt

pero quiero que me guarde toda la info el nombre y la ip sobretodo es lo importate, gracias

En su momento respondí lo que figura en ese enlace sin entrar al fondo de la cuestión, fijándome solo en la sintaxis. Como la persona que preguntaba no siguió con el asunto se quedó ahí. Ahora he intentado probar el bat en las condiciones comentadas (archivo de IPs separadas por comas en una única línea) y he visto que no funciona bien. Si queremos que funcione en esas condiciones (archivo de IPs separadas por comas, con o sin espacios y en una o más líneas) podría valer esto:

@echo off
if exist proceso.log del proceso.log
for /f "tokens=* delims=" %%a in (equipos.txt) do (call :proceso1 "%%a")
type proceso.log
goto :eof
:proceso1
call :proceso2 %~1
goto :eof
:proceso2
ping %1 -n 1 > nul
if errorlevel 1 goto :muerto
if errorlevel 0 goto :vivo
:Muerto
echo %1 no responde >>proceso.log
goto :mas
:Vivo
echo %1 responde >>proceso.log
:Mas
Shift
if "%1"=="" goto :eof
goto :proceso2
:Fin

Copia lo anterior en un archivo. Dale un nombre con extensión BAT y sitúalo en la carpeta donde tengas el archivo EQUIPOS.TXT. Luego ejecuta el BAT. Si lo haces desde una ventana CMD verás el resultado al final (cuando se ejecute el TYPE PROCESO.LOG). Si lo lanzas desde el explorador de Windows tendrás que entrar al archivo PROCESO.LOG para ver los resultados.

Si no funciona como se espera pon por aquí una captura de pantalla o algo que nos ayude a depurar el problema.

Se han cruzado nuestros mensajes. El bat que comentas figura en el hilo

.bat para comprobar resultado de un PING

Y también tuve que ver con él, y también sin mucha respuesta por parte del que hizo la pregunta. Cuando dices "quiero que me guarde toda la info el nombre y la ip sobretodo es lo importante" no entiendo a que te refieres con "toda la info" y el nombre.

Ya lo he conseguido, al final hice esto:

@echo off
CD C:\Users\AirON\Desktop\ping
del /q log1.txt
del /q testlog1.csv
for /f %%a in (ips.txt) do (
ping %%a -n 1 >>log1.txt
)
start log1.txt

type log1.txt | find "Haciendo">> testlog1.csv

Pause

Luego tengo que ordenar un poco los datos en Excel pero me vale, muchas gracias

Tengo otra consulta que hice hace unos días,¿sabrías como puedo pedir inf?

Muchas gracias por tu ayuda

Me alegro de que hayas encontrado una solución más sencilla. Respecto a la otra consulta (entiendo que te refieres a esta:

Quiero juntar dos csv en uno pero en columnas separadas ) ¿Qué es la "inf" que quieres pedir?

si esa es pues en log 1 me da el nombre en log 2 me da la ip lo que quiero es que me lo haga y me lo meta en columnas diferentes no en la misma como o hace,

gracias por la ayuda

Te he contestado con una propuesta en el otro hilo. A ver si hay suerte y te sirve

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas