调用TXT文件进行批量Ping

本文介绍了一个使用PowerShell编写的工具,可以自动测试大量IP地址的连通性,用户只需选择包含IP的TXT文件,脚本便会执行ping操作并将结果分别存储在PingOK.txt和PingNO.txt中,方便后续查看。
摘要由CSDN通过智能技术生成

需求:日常中有很多IP需要测试在不在线,但是不连贯,一个个ping有浪费时间。现场写命令又麻烦。

PowrShell编写的简单工具,可以看下代码注释也可以看下最后面的说明。

使用方法:把此代码保存为.ps1格式。使用PowerShell运行,运行后会提示选择您要打开的txt文档。

在这里插入图片描述
在这里插入图片描述

  • 以下是源码:
# 设置输出编码为UTF-8以支持非ASCII字符
$OutputEncoding = [System.Text.Encoding]::UTF8

# 导入System.Windows.Forms程序集以使用文件对话框
Add-Type -AssemblyName System.Windows.Forms

# 创建文件对话框以选择TXT文件
$openFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$openFileDialog.Filter = "Text Files (*.txt)|*.txt"
$openFileDialog.Title = "选择TXT文件"

# 如果用户选择了文件并点击了“确定”
if ($openFileDialog.ShowDialog() -eq "OK") {
    # 获取所选文件的文件名
    $txtFile = $openFileDialog.FileName

    # 定义用于存储ping结果的文件名
    $pingFailFile = "PingNO.txt"
    $pingSuccessFile = "PingOK.txt"

    # 如果存在,则删除现有的ping结果文件
    Remove-Item $pingFailFile -ErrorAction SilentlyContinue
    Remove-Item $pingSuccessFile -ErrorAction SilentlyContinue

    # 逐行读取所选文件
    Get-Content $txtFile | ForEach-Object {
        # 将每行分割为IP和主机名
        $ip, $hostname = $_ -split ',', 2
        
        # 显示指示正在执行ping操作的消息
        Write-Host "正在ping $ip - $hostname..."
        
        # 执行ping操作
        if (Test-Connection -ComputerName $ip -Count 3 -Quiet) {
            # 如果ping成功,则追加到成功文件中
            Add-Content -Path $pingSuccessFile -Value "$ip - $hostname Ping成功"
        } else {
            # 如果ping失败,则追加到失败文件中
            Add-Content -Path $pingFailFile -Value "$ip - $hostname Ping失败"
        }
    }

    # 显示完成消息
    Write-Host "Ping操作完成."
    
    # 检查是否有不可达的IP,并显示消息
    if (Test-Path $pingFailFile) {
        Write-Host "请查看 $pingFailFile 查看不可达的IP."
    }
    
    # 检查是否有可达的IP,并显示消息
    if (Test-Path $pingSuccessFile) {
        Write-Host "请查看 $pingSuccessFile 查看可达的IP."
    }
}

用户交互部分: 使用 System.Windows.Forms.OpenFileDialog创建一个文件对话框,允许用户选择一个包含IP地址的TXT文件。
Ping 操作: 通过 Test-Connection cmdlet 对所选文件中的每个IP地址执行 ping 操作。如果 ping成功,则将结果记录到一个名为 PingOK.txt 的文件中;如果 ping 失败,则记录到一个名为 PingNO.txt 的文件中。
结果反馈: 在完成 ping 操作后,脚本会显示一条消息表明操作已完成。然后,它会检查是否有Ping不通的IP地址(记录在 PingNO.txt文件中);如果有Ping的通的IP地址(记录在 PingOK.txt 文件中)。
错误处理: 脚本使用 -ErrorAction SilentlyContinue来忽略文件操作中的任何错误,以确保即使某些文件不存在,脚本也能够继续执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hadesls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值