想写一个bat脚本ping多个ip地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想写一个bat脚本ping多个ip地址相关的知识,希望对你有一定的参考价值。

利用bat脚本和windows任务计划,bat创建多个dos窗口ping ip地址,通的话自动关闭dos窗口,不通保留dos窗口界面,同时每次ping的记录保留。

参考技术A @echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
cd /d "%~dp0"
>checkip.bat echo;@ping %%1 -n 3 -w 15^|find /i "TTL="^&^&(^>^>"%~dp0result.txt" echo;%%1 Y ^& exit)^|^|(^>^>"%~dp0result.txt" echo;%%1 N ^& title Any question +%@%%@% %n% ^& echo;%%1 ^&pause)
for /f "delims=:" %%a in ('findstr /n "exit$" "%~f0"') do set count=%%a
for /f "delims=" %%a in ('more +%count% "%~f0"') do (start /min cmd /c checkip.bat %%a)
echo;Any question +%@%%@% %n%
pause&exit
192.168.1.1
192.168.1.24
192.168.1.101
192.168.1.14
192.168.1.58
……

shell脚本从命令行输入ip或读取文件ping Ip地址是否通ping.sh

 

一、只从文件读取

[root@rhel8 shell]# cat ping.sh 
#!/bin/bash

# 判断是否有输入参数
if [ $# -eq 0 ];then

#    basename:只输出路劲的最后一个名称
    echo -e "33[34mUsage: `basename $0` filename.txt33[0m"    
fi

# 判断是否输入的是文件
if [ ! -f $1 ];then
    echo -e "33[33mError file(It‘s not a file)33[0m"
    exit    
fi

# 从文件读取ip地址
for ip in `cat $1`
do
    ping -c2 $ip >/dev/null 2>&1
    if [ $? -eq 0 ];then
        echo -e "33[33m${ip} is up33[0m"
    else
        echo -e "33[33m${ip} is down33[0m"
    fi
done

二、从命令行或文件读取

[root@rhel8 shell]# cat ping.sh 
#!/bin/bash

IP_REG=([0-9]{1,3}.){3}[0-9]{1,3}
# 判断是否有输入参数
if [ $# -eq 0 ];then

#    basename:只输出路劲的最后一个名称
    echo -e "33[34mUsage: `basename $0` filename.txt|ipaddr33[0m"    
    exit
fi

# 判断是$1是否输入参数,输入的参数是ip地址还是文件
# 判断输入的是IP地址
if [[ $1 =~ $IP_REG ]];then
    ping -c2 -W1 $1 >/dev/null 2>&1
    if [ $? -eq 0 ];then
        echo -e "33[33m$1 is up33[0m"
        else
        echo -e "33[33m$1 is down33[0m"
    fi
elif [ -f $1 ];then
    # 从文件读取ip地址
    for ip in `cat $1`
    do
        ping -c2 $ip >/dev/null 2>&1
        if [ $? -eq 0 ];then
            echo -e "33[33m${ip} is up33[0m"
        else
            echo -e "33[33m${ip} is down33[0m"
        fi
    done
else
    # basename:只输出路径的最后一个名称
    echo -e "33[34mUsage: `basename $0` filename.txt|ipaddr33[0m"
    exit
fi

 

以上是关于想写一个bat脚本ping多个ip地址的主要内容,如果未能解决你的问题,请参考以下文章

DOS 批处理文件 ping脚本返回时间

自动设置IP地址bat脚本

更改Windows IP 地址的bat脚本

BAT脚本/Dos 改ip地址

有个EXE程序经常挂掉,想写个bat脚本扫描后台程序没运行后自行启动EXE程序。

Windowswin10电脑通过bat脚本自动配置IP地址