200个计算机局域网适合什么,批处理检测局域网电脑是否开机(200多台电脑,不同网段,最好按主机名称检测)...

我给你两种方案:

1、用ping命令;

2、用net view命令。

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

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

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

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地址格式! && pause && goto kaishi

echo.

::从键盘获得两个变量的值。

for /f "tokens=1-4 delims=." %%a in ("%qishi%") do (

if %%a LSS 0 goto error

if %%a GTR 255 goto error

if %%b LSS 0 goto error

if %%b GTR 255 goto error

if %%c LSS 0 goto error

if %%c GTR 255 goto error

if %%d LSS 0 goto error

if %%d GTR 255 goto error

set v1=%%a

set v2=%%b

set v3=%%c

set v4=%%d

)

::分割起始IP的四个段并赋值,判断IP是否正确。

for /f "tokens=1-4 delims=." %%a in ("%jieshu%") do (

if %%a LSS 0 goto error

if %%a GTR 255 goto error

if %%b LSS 0 goto error

if %%b GTR 255 goto error

if %%c LSS 0 goto error

if %%c GTR 255 goto error

if %%d LSS 0 goto error

if %%d GTR 255 goto error

set v5=%%a

set v6=%%b

set v7=%%c

set v8=%%d

)

::分割终止IP的四个段并赋值,判断IP是否正确。

IF %V5% LSS %V1% echo 错误:终止IP不能小于起始IP。& pause & goto kaishi

::判断终止IP与起始IP的正确性。

echo 正在扫描...

IF %V4% LEQ %V8% set zengzhi_1=1

IF %V4% GEQ %V8% set zengzhi_1=-1

IF %v3% LEQ %v7% set zengzhi_2=1

IF %V3% GEQ %V7% set zengzhi_2=-1

IF %v2% LEQ %v6% set zengzhi_3=1

IF %v2% GEQ %v6% set zengzhi_3=-1

for /L %%d in (%v1%,1,%v5%) do (

for /L %%c in (%v2%,%zengzhi_3%,%v6%) do (

for /L %%b in (%v3%,%zengzhi_2%,%v7%) do (

for /L %%a in (%v4%,%zengzhi_1%,%v8%) do (

ping /n 1 %%d.%%c.%%b.%%a >nul && echo %%d.%%c.%%b.%%a  开机 && echo %%d.%%c.%%b.%%a>>在线主机.txt || echo %%d.%%c.%%b.%%a  关机 && echo %%d.%%c.%%b.%%a >>不在线主机.txt

)

)

)

)

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

echo                                  ☆ 报告 ☆

IF EXIST 在线主机.txt (

FOR /F "tokens=3 delims= " %%c in ('find /c 在线主机.txt " "') do set zx=%%c

) ELSE (

set zx=0

)

IF EXIST 不在线主机.txt (

FOR /F "tokens=3 delims= " %%c in ('find /c 不在线主机.txt " "') do set bzx=%%c

) ELSE (

set bzx=0

)

set /a zgjsj=%zx%+%bzx%

echo %date% %time%>☆报告☆.txt

echo 扫了%zgjsj%台计算机! & echo 扫了%zgjsj%台计算机!>>☆报告☆.txt

echo 有%zx%台计算机在线! & echo 有%zx%台计算机在线!>>☆报告☆.txt

echo 有%bzx%台计算机不在线! & echo 有%bzx%台计算机不在线!>>☆报告☆.txt

echo        10秒后自动退出... & ping 127.1 -n 10 >nul & exit

:error

echo 错误的IP地址!

pause

goto kaishi

2、用net view方案(全自动):

off

title 共享扫描..ipc讲...

MODE con: COLS=80 LINES=22

color 0a

echo.

echo 工作组内所有计算机:

FOR /F "eol=- delims=\" %%c in ('net view') do (

FOR /F "eol=服" %%i in ('echo %%c') do (

FOR /F "eol=命" %%i in ('echo %%c') do (

echo %%i

echo %%i>>全部在线主机.txt

echo %%i>>pcname.txt

echo %%i >>pcname2.txt

)

)

)

::echo 分析其计算机的IP地址...

::FOR /F "delims=" %%h in (pcname.txt) do

::FOR /F "tokens=3 delims= " %%j in ('ping %%h -n 1') do echo %%j

::)

echo.

echo 扫描共享文件...

FOR /F "delims=" %%c in (pcname.txt) do (

net view \%%c >nul 2>nul && echo %%c>>有共享.txt && echo %%c  共享文件:>>共享的文件2.txt && echo ==============================================>>共享的文件2.txt && net view \%%c>>共享的文件2.txt && echo       .>>共享的文件2.txt && echo       .>>共享的文件2.txt && echo %%c  有共享||echo %%c  无共享

)

::除去net view命令结果内多余的文字

FOR /F "eol=在 delims=" %%c in (共享的文件2.txt) do (

FOR /F "eol=- delims=" %%i in ('echo %%c') do (

FOR /F "eol=命 delims=" %%c in ('echo %%i') do (

echo %%c>>共享的文件.txt

)

)

)

echo.

echo 扫描能ipc拥募扑慊...

FOR /F "delims=" %%i in (pcname.txt) do (

net use \%%iipc " /user:"" >nul 2>nul && echo %%i>>ipc映晒Φ募扑慊.txt && net use \%%i /del>nul && echo %%i  ipc映晒!||echo %%i  ipc邮О!

)

echo.

echo.

echo.

echo                                  ☆ 报告 ☆

IF EXIST pcname2.txt (

FOR /F "tokens=3 delims= " %%c in ('find /c pcname2.txt " "') do echo 当前工作组内有%%c台计算机!

) ELSE (

echo 当前工作组内有0台计算机!

)

IF EXIST 有共享.txt (

FOR /F "tokens=3 delims= " %%c in ('find /c 有共享.txt " "') do echo 当前工作组内有%%c台计算机有共享文件! & del 有共享.txt

) ELSE (

echo 当前工作组内有0台计算机有共享文件

)

IF EXIST ipc映晒Φ募扑慊.txt (

FOR /F "tokens=3 delims= " %%c in ('find /c ipc映晒Φ募扑慊.txt " "') do echo 当前工作组内有%%c台计算机ipc芰映晒!

) ELSE (

echo 当前工作组内有0台计算机ipc芰映晒!

)

del pcname.txt>nul

del pcname2.txt>nul

del 共享的文件2.txt>nul

echo        10秒后自动退出... & ping 127.1 -n 10 >nul & exit

为你的情况写的代码:

off

echo 正在扫描...

FOR /F "delims= " %%c in (d:    esthostname.txt) do ping %%c /n 1 >nul && echo %%c 开机! && echo %%c>>d:    est开机主机.txt||echo %%c 关机! && echo %%c>>d:    est关机主机.txt

echo 扫描完毕!

pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值