Массовый PING по списку из текстового файла

17 декабря, 2017

Еще один скрипт, которым приходится периодически пользоваться — массовый пинг по списку. Но по закону подлости, когда он необходим, его под рукой не оказывается, и в голове он стирается к этому времени. Поэтому каждый раз сочиняю его заново, на что тратится время. Запишу здесь, отсюда точно никуда не денется.

Задача: пропинговать большое количество устройств в сети, список айпишников, которых находится во внешнем файле. Результатом проверки пусть будет какой-либо файл, в моем случае csv.

Привязываться к какой-либо программе нет желания, да и гибче в управлении bat-файл по итогу получается.

Текст bat-файла:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set «file=путь_до_файла\list.txt»

FOR /F %%x IN (‘findstr /B /V /C:# %file%’) DO (
ping %%x -n 1 | find «TTL=» > nul
if errorlevel 1 (
echo %%x offline
echo %%x;offline >> путь_до_файла\result.csv
) else (
echo %%x online
echo %%x;online >> путь_до_файла\result.csv
)
)

Косяк в Windows 7 — не могу запустить файл скрипт командой «Выполнить», приходится запускать через командную строку.

Файл list.txt простой:

192.168.0.1
192.168.0.2
#192.168.0.3
192.168.0.4

192.168.0.255

Файл result.csv. Его также можно открыть экспортом в Экселе и удобно редактировать. Закомментированные символом # строчки в list.txt в выходном файле игнорируются.

192.168.0.1;online
192.168.0.2;offline
192.168.0.4;online

192.168.0.255;online
Посмотреть