
有沒有佬能幫忙看看這個斷網檢測的BAT腳本寫了個腳本,測試的時候很正常,但是真正斷網的時候就G了,不知道哪里的原因,網卡名字也對上的有大佬能幫忙看看嗎,或者有沒有自動識別當前聯網的網卡進行檢測的,電腦上還有vmwave的虛擬網卡,不知道能不能實現主要就是持續檢測網絡,斷網超過多少秒就重啟網卡,重啟幾次無效的話就重啟電腦
nclick="copycode($('code0'));">復制代碼
- @echo off
- REM 獲取當前日期
- for /f tokens=1-3 delims=/ %%a in ('date /t') do (
- set datestamp=%%a-%%b-%%c
- )
- REM 創建日志文件名
- set alllogfile=D:Ping%datestamp%_network_check.log
- set rebootlogfile=D:Ping%datestamp%_reboot.log
- REM 設置需要重啟的網卡名稱
- set INTERFACE_NAME=以太網
- REM 最大重啟次數,默認重啟3次網卡無效后重啟電腦,根據自己需要更改下列數字,比重啟次數大1即可
- set MAX_RESTART_COUNT=4
- REM 網絡中斷秒數
- set RESTART_INTERVAL=30
- REM 記錄已經進行的網卡重啟次數。初始值為1,每次網卡重啟后遞增。
- set /A RESTART_COUNT=1
- set /A DISCONNECTED_TIME=0
- set STOP_FLAG=
- :START
- ping www.baidu.com -n 1 | findstr TTL= > nul
- if %errorlevel% neq 0 (
- set /A DISCONNECTED_TIME+=1
- if %DISCONNECTED_TIME% gtr %RESTART_INTERVAL% (
- set /A RESTART_COUNT+=1
- netsh interface set interface %INTERFACE_NAME% admin=disable > nul
- timeout /t 5 > nul
- netsh interface set interface %INTERFACE_NAME% admin=enable > nul
- set DISCONNECTED_TIME=0
- if %RESTART_COUNT% equ %MAX_RESTART_COUNT% (
- echo %date% %time% - 網卡重啟無效, 重啟電腦. >> %alllogfile%
- echo %date% %time% - 網卡重啟無效, 重啟電腦. >> %rebootlogfile%
- shutdown /r /f /t 0
- set STOP_FLAG=1 REM 設置停止標志
- exit
- ) else (
- echo %date% %time% - %INTERFACE_NAME%網卡重啟次數: 第 %RESTART_COUNT% 次 >> %alllogfile%
- echo %date% %time% - %INTERFACE_NAME%網卡重啟次數: 第 %RESTART_COUNT% 次 >> %rebootlogfile%
- )
- )
- echo %date% %time% - 網絡中斷! >> %alllogfile%
- ) else (
- set DISCONNECTED_TIME=0
- )
- timeout /t 1 > nul
- REM 檢查停止標志
- if defined STOP_FLAG (
- exit
- ) else (
- goto :START
- )

