批處理 ping不通自動重啟的應用

2021-08-02 10:47:04 字數 1310 閱讀 8948

公司電腦上裝了愛快軟路由,然後再接的tp-link的家用路由當的ap,但另外置入的pci-e有線網絡卡似乎不太友好,經常沒事就罷工,無奈只能重啟解決。起初,用windows自帶的遠端桌面功能連線到那台主機,然後用shutdown進行重啟,後來實在太麻煩,就在系統自帶的計畫任務裡建立了幾個定時重啟的任務,但由於出現故障的時間和設的定時重啟時間不可能吻合,經常會出現自動重啟後,沒多久趕上故障,導致使用者無法接入wifi。

後來在想,是否能在那台主機上寫個批處理的命令,用來判斷軟路由的wan口是否能ping通,然後再判斷要不要重啟。

首先,原開機自啟有用vitualbox虛擬執行的愛快軟路由系統,開機進入系統後大概1-2分鐘可以ping通其wan口位址,設這個wan-ip為192.168.1.5 。

在windows啟動中加入兩個批處理命令,乙個用來預判斷是否wan口已經能夠ping通(prep-testing.bat),另乙個用來判斷ping通後如果不能ping通,則重啟;如果能ping通,則繼續ping(testing.bat),假設這兩個bat檔案都在d盤根目錄下。

prep-testing.bat

set ip=192.168.1.5

:pping -w 1000 -n 3 %ip%|find "ttl"

if %errorlevel%==0 (start "" "d:\testing.bat") else (goto p)

首先,開機的時候,prep-testing.bat因放在啟動資料夾裡(快捷方式即可),用ping判斷192.168.1.5這個ip是否能ping通(等待愛快軟路由的啟動),如果沒ping通,則返回繼續執行 「p」 (":p"此時的冒號在批處理為標籤的意思,此句不執行,只做標籤識別的用處),一旦軟路由順利啟動進入系統,則192.168.1.5這個位址可以ping通,那麼執行第一句start "" "d:\testing.bat"。(博主並不知道,start 後為什麼要先加一對空引號,批處理也沒正經學過。。只是搜start的用法,是這麼用的。。)

testing.bat

set ip=192.168.1.5

:pping -w 1000 -n 3 %ip%|find "ttl"

if %errorlevel%==0 goto p

if %errorlevel%==1 goto reboot

:reboot

shutdown /r /f /t 180

此時,成功啟動testing.bat後,一旦軟路由的wan口不能ping通,則進入 :reboot語句,並延時3分鐘關機(180);如果一直能ping通,則執行:p語句,繼續ping。

批處理設定的環境變數不用重啟

echo off 新建目錄 md c test 設定環境變數,tmppath為臨時變數 把path變數賦值給tmppath並把字串中的c test 替換為空 set tmppath path c test 判斷ver中是否有xp子串,有則執行 xp,否則執行 win7 ver findstr xp ...

自動push apk的批處理檔案

問題環境 每天做自動化測試時,跑monkey,有時需要更新某乙個apk,每次敲5條命令很麻煩。更新apk給其他人,有人敲push路徑錯誤 解決 寫乙個bat指令碼,雙擊則自動安裝apk至手機 手動安裝命令apk adb root adb remount adb push apk adb shell ...

自動切換路由的批處理檔案

背景 公司上網需要設定 家裡不需要 由於開啟了vmware的vmnet8網絡卡,路由需要自己手工配置,否則網頁訪問請求總是會被發的vmnet8的網絡卡 問題 每天這樣切換來切換去,甚是煩人.解決思路 以前自己也有了解過bat處理,便想通過批處理的方式進行實現。網上查閱了了一些資料,確定方案可行後即可...