批处理检测局域网电脑是否开机(200多台电脑,不同网段,最好按主机名称检测)

来源:百度知道 编辑:UC知道 时间:2024/09/21 10:58:03
我想请dos高手们帮我写一段批处理命令,来检测mis域电脑开机状况,mis域电脑主机名称不会重复,我事先已经把主机名称写入一个hostname.txt文件中,放入服务器D盘test文件夹中,最好用主机名称来检测(因为mis中电脑分三个网段,需要按主机名称生成开机列表),内网电脑防火墙已经关掉,最后把开机的电脑按照主机名称写入一个文本文件中。欢迎各位高手帮忙解决问题,谢谢!
操作系统限:windows xp,windows2000,windows nt4.0。最后把生成的报表开机列表文件也放入D盘test文件夹中。
例如:我写了下面一段代码,不知道为什么当所ping主机关机时就是不能把!errorlevel!变量赋值为1,所以下面的代码总是把所有的所ping主机都标识为开机
‘********************************************************************************
@echo off
setlocal enabledelayedexpansion
>>"D:\test\pingresult.txt" date/t //在D盘的一个txt文件里写入日期
FOR /f %%p IN (hostname.txt) Do (
ping %%p -n 1 -w 100>nul //这一行ping的参数可以查看微软的帮助信息
if !errorlevel!==0 ( //有回应就在txt文件里重定向信息
>>"D:\test\pingresult.txt" echo hostname:%%p 活动中!
)
)
exit
’********************************************************************************
hostname.txt内容格式如下:
tes

我给你两种方案:

1、用ping命令;

2、用net view命令。

用这两个命令结合批处理程序来达到你的目的!

这两个BAT是我以前写的,你可以修改下变成你运用得到的!呵呵!

1、ping方案(手动输入起始IP和结束IP):

@echo off

title 扫描在线IP

::MODE con: COLS=60 LINES=18

color 0a

::装饰。

:kaishi

cls

for /l %%i in (1,1,4) do echo.

echo                       输入起始IP地址和结束IP地址后回车,扫描完成

echo                   之后会在此程序目录下生成TXT文件,文件内记录了

echo                   在线和不在线的主机。

echo.

set /p qishi= 起始IP:

set /p jieshu= 终止IP:

IF ERRORLEVEL 1 echo 错误的IP地址格式! &&&nb