@echo offBatch Ping Dynamic VPN Servers
setlocal
rem 以下是要 ping 的动态 VPN 服务器列表
rem 服务器1: server1.example.com
rem 服务器2: server2.example.com
rem 服务器3: server3.example.com
for /f "tokens=*" "input" %%A in ('more') do (
@echo Processing server: %%A
ping -n 4 %%A > output.txt
if %ERRORLEVEL% neq 0 (
echo Server %%A is unreachable! >> output.txt
)
ping -n 4 %%A >nul
)
步骤说明:
-
定义服务器列表:手动输入要 ping 的动态 VPN 服务器地址(可以通过
more提供输入,方便用户或脚本动态添加服务器)。 -
批处理循环:使用
for /f循环读取输入的服务器地址。 -
执行 ping 命令:使用
ping -n 4命令,-n 4指定 ping 次数为 4 次,> output.txt指定输出结果到output.txt文件。 -
处理错误:检查
ping命令的返回代码,若不为 0(表示成功),则输出到日志文件说明服务器不可达。 -
清空标准输出:
>nul用于将 ping 的标准输出清空,避免混淆。 -
输出结果:所有 ping 结果都会被记录在
output.txt文件中,包括成功和失败的结果。
使用说明:
-
编辑服务器列表:在批处理脚本中手动添加要 ping 的动态 VPN 服务器地址,或者通过
more提供输入。 -
运行批处理脚本:双击运行批处理脚本,脚本会逐一对每个服务器执行 ping 命令,并将结果保存到
output.txt文件。 -
查看结果:在
output.txt文件中查看所有 ping 的结果,包括成功和失败的日志。
注意事项:
-
权限问题:确保批处理脚本有权限访问所有要 ping 的服务器,以及写入输出文件。
-
脚本可靠性:在脚本中可以增加更多错误处理,例如检查网络接口、防火墙设置等,以确保 ping 命令能够正常执行。
-
性能考虑:如果服务器数量较多,可以考虑使用 PowerShell 脚本或其他工具来提高批量处理效率。
希望这个示例对你有所帮助!如果有更多具体需求,可以进一步优化脚本。









