2013年8月2日 星期五

[微軟作業系統]寫一個簡易的網路切換器

因為工作的需求,我需要在區域連線及無線網路連線間做切換
既然都是科技人 以前較腦的方法想當然就是直接到網路裝置下停用區域網路並啟用網路/反之操作亦然。
現在為了仿效Linux底下的sh所以希望用更Smart的指令寫成.bat檔來執行。

我們參考了這篇:
http://saveeroad.pixnet.net/blog/post/125419888-%E5%85%A9%E5%BC%B5%E7%B6%B2%E5%8D%A1%E5%88%87%E6%8F%9B

寫了一段指令:
netsh interface set interface name="區域連線" admin=ENABLE
netsh interface set interface name="無線網路連線 2" admin=DISABLED
上述指令為開啟區域連線並關閉無線網路連線 2(Win7環境下)
反之,若是要關區域連線開無線網路連線2,我們還得寫另外一個:
netsh interface set interface name="區域連線" admin=DISABLED
netsh interface set interface name="無線網路連線 2" admin=ENABLE

這樣會是兩個檔案,看來我們需要更高效能的執行。
因此,又找到了這兩篇:

[整理修改] DOS 批處理命令判斷操作系統版本 執行各版本對應語句


經過了消化後,我們將.bat又改造了一番:
@echo ===============選擇網路程式v1.0===Auth:Kun-hsien,Lee========
rem 選擇要切換的網路
@echo [1]切換至區域連線
@echo [2]切換至無線網路
@echo [Q]結束測試
@echo ============================================================
set /p testa=選擇切換網路方法(記得回車):
if /i %testa%==1 goto sw-lan
if /i %testa%==2 goto sw-wify
if /i %testa%==Q goto finish

:finish
echo Finsh!!!
exit

:sw-lan
echo 執行Switch to Lan
netsh interface set interface name="區域連線" admin=ENABLE
netsh interface set interface name="無線網路連線 2" admin=DISABLED
exit

:sw-wify
echo 執行Switch to Wify
netsh interface set interface name="區域連線" admin=DISABLED
netsh interface set interface name="無線網路連線 2" admin=ENABLE
exit

================================================
此外,為了怕使用者亂輸入,最容易的防護機制就是把finish寫在第一個並跳開!


沒有留言:

張貼留言