Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Ping с условием и выводом в файл

Ответить
Настройки темы
CMD/BAT - Ping с условием и выводом в файл

Новый участник


Сообщения: 30
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго дня, помогите написать скрипт, который бы пинговал список адресов с привязанным именем, например ping 192.168.1.15 (Мария) Если Мария онлайн вывести в файл строку типа "14.12.2023 11.05 Мария онлайн"

Отправлено: 08:06, 14-12-2023

 

Аватара для NickM

Ветеран


Contributor


Сообщения: 4553
Благодарности: 1085

Профиль | Отправить PM | Цитировать


Что-нибудь типа такого:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

For /F "Tokens=1,* Delims= " %%a In ('type "%~dp0list.txt"') Do (
ping -n 2 %%a | find /i "TTL=" 2>nul >nul
If !errorlevel! EQU 1 (echo.%%a %%b offline.) else (echo.%%a %%b online.)
)
Файл "list.txt", например:
Код: Выделить весь код
192.168.1.2 (Сервер 2)
192.168.1.3 (Сервер 3)
192.168.1.22 (Сервер 22)
192.168.1.5 (Сервер 5)
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:38, 14-12-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 226
Благодарности: 20

Профиль | Отправить PM | Цитировать


Вариант на powershell:

Код: Выделить весь код
param (
$date = "{0:dd.MM.yyyy_HH.mm.ss}" -f (get-date), #текущая дата
$file = "Patch to\fileping.txt", #список адресов 
$only = "Patch to\online.txt" #кто онлайн
)

ForEach ($i in (Get-Content $file -Encoding utf8)) {
$ip,$is = ($i).Split(" ")
$im = $is -replace '\(|\)'
ping -n 1 -w 10 $ip > $null
if($LASTEXITCODE -eq 0) {
Add-Content $only -Encoding utf8 -Value $date' '$im' онлайн'
}
}

Отправлено: 12:21, 16-12-2023 | #3


Аватара для NickM

Ветеран


Contributor


Сообщения: 4553
Благодарности: 1085

Профиль | Отправить PM | Цитировать


Упс, про дату и время не увидел, исправляюсь:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

For /F "Tokens=1,* Delims= " %%a In ('type "%~dp0list.txt"') Do (
call :getdatetime
ping -n 2 %%a | find /i "TTL=" 2>nul >nul
If !errorlevel! EQU 0 (echo.!datetime! %%a %%b online.) else (echo.!datetime! %%a %%b offline.)
)
GoTo :EOF

:getdatetime
set datetime=%date:~-10%-%time:~0,2%.%time:~3,2%.%time:~6,2%

Отправлено: 14:46, 16-12-2023 | #4


Старожил


Сообщения: 226
Благодарности: 20

Профиль | Отправить PM | Цитировать


Кстати, в последнее время возросла тенденция на использование ИИ. Задал ему вопрос топикстартера, слово в слово, ответ выдал скриптом на python:
Код: Выделить весь код
import os
import datetime

addresses = {
    "192.168.1.15": "Мария",
    "192.168.1.16": "Иван",
    "192.168.1.17": "Елена"
}

current_date = datetime.datetime.now().strftime("%d.%m.%Y %H:%M")

with open("ping_log.txt", "a") as file:
    for address, name in addresses.items():
        response = os.system("ping -n 1 " + address)
        if response == 0:
            file.write(f"{current_date} {name} онлайн\n")
        else:
            file.write(f"{current_date} {name} офлайн\n")

Отправлено: 09:57, 20-12-2023 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Ping с условием и выводом в файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - поиск и добавление текста в файл с условием Sta1917 Скриптовые языки администрирования Windows 8 06-07-2016 17:07
CMD/BAT - Удаление файлов и папок по списку с выводом результата в файл Sub-Zero Скриптовые языки администрирования Windows 0 08-12-2015 23:12
CMD/BAT - запись ping в файл команда в одну строку... White-Lion Скриптовые языки администрирования Windows 7 06-04-2015 12:03
Проблема с выводом видеоизображения kizin84 Непонятные проблемы с Железом 3 01-05-2013 01:42
Delphi - Проблема с с выводом... ultrakiller Программирование и базы данных 5 05-09-2011 08:57




 
Переход