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

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?
- Compartir respuesta
