批處理檢測區域網路電腦是否開機(轉載)

來源:互聯網
上載者:User

標籤:

我給你兩種方案:
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 

批處理檢測區域網路電腦是否開機(轉載)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.