以下是一个用于批量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内网主机,并将结果输出到文件中,这对于网络管理和故障排查非常有用。

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部