以下是一个用于批量Ping内网主机并输出到文件的批处理脚本:
@echo off
setlocal enabledelayedexpansion
REM 定义默认网段
set DEFAULT_NET_SEGMENT=192.168.1
REM 检查是否传入网段参数,如果没有传入则使用默认网段
if "%~1"=="" (
set NET_SEGMENT=%DEFAULT_NET_SEGMENT%
) else (
set NET_SEGMENT=%~1
)
REM 定义输出文件
set OUTPUT_FILE=ping_results.txt
REM 清空或创建输出文件
echo 正在Ping网段 %NET_SEGMENT% 的主机... > %OUTPUT_FILE%
REM 循环Ping网段内的每个主机
for /L %%i in (1,1,254) do (
set IP=%NET_SEGMENT%.%%i
call :pingHost !IP!
)
REM 提示用户查看结果并退出
echo 完成,结果已保存到 %OUTPUT_FILE%
exit /b 0
:pingHost
ping -n 1 -w 1000 %1 > nul
if not errorlevel 1 (
echo %1 在线 >> %OUTPUT_FILE%
) else (
echo %1 离线 >> %OUTPUT_FILE%
)
exit /b
使用方法
1. 将以上代码保存为 `ping_hosts.bat`(确保文件扩展名为 `.bat`)。
2. 打开命令提示符(CMD)并导航到存储脚本的目录。
3. 运行脚本,可以选择使用默认的网段或指定自定义的网段。以下是两种使用方式:
- 使用默认的网段 `192.168.1`:
ping_hosts.bat
- 指定自定义的网段,例如 `192.168.2`:
ping_hosts.bat 192.168.2
4. 执行完毕后,将在相同目录下生成名为 `ping_results.txt` 的文件,其中包含了所有主机的Ping结果。
解释
默认网段: 脚本默认使用 `192.168.1` 作为网段,如果未传入网段参数,则使用该默认网段。
输出文件: 脚本将所有Ping结果保存到名为 `ping_results.txt` 的文件中。
Ping主机: 通过循环遍历网段内的每个主机IP,并调用 `:pingHost` 子例程对每个主机进行Ping操作。
子例程: `:pingHost` 子例程对传入的主机IP进行Ping操作,并将结果写入输出文件。
通过以上脚本,你可以方便地批量Ping内网主机,并将结果输出到文件中,这对于网络管理和故障排查非常有用。
发表评论 取消回复