Windows批處理 - 用筆記本開WiFi

版權聲明:本文爲博主原創文章,轉載請註明出處。 https://blog.csdn.net/xmousez/article/details/53130867

收到好友提醒,說這段時間寫的文章一點實用性都沒有。。。而且有點難懂。。。

回頭又看了一眼,其實並不是命令難懂,是我按照自己的想法,關注點一直都在設計上。爲了保證所謂的“通用性”“重用性”和“可擴展性”,反倒把簡單的東西弄得複雜了。。。亂七八糟的命令,實際上起到關鍵作用的只是那麼一兩句,所以顯得不知所云。。。

想了想,還是得先從“實用性”開始。先來一個比較常用的吧——使用無線網卡開WiFi。

雖然標題是“用筆記本開WiFi”,但實際上只要是有無線網卡的應該都可以。

先上代碼:VirtualWiFiHost.bat

@echo off
setlocal EnableDelayedExpansion

echo Set your wifi name:
set /p ssid=

:setpassword
    echo.
    echo Set your wifi password:
    set /p key=
    if "!key:~7,1!" leq "" (
        echo The password you have entered is not valid^^!
        echo Password must be at least 8 characters long^^!
        goto setpassword
    )

echo.
netsh wlan set hostednetwork mode=allow ssid=!ssid! key=!key!

netsh interface set interface name="無線網絡連接" admin=enable
netsh interface set interface name="Wireless Network Connection" admin=enable
netsh interface set interface name="無線網絡連接 2" admin=enable
netsh interface set interface name="Wireless Network Connection 2" admin=enable
netsh interface set interface name="無線網絡連接 3" admin=enable
netsh interface set interface name="Wireless Network Connection  3" admin=enable

netsh wlan start hostednetwork
echo Wifi set complete^^!
echo username=!ssid!
echo password=!key!

pause>nul

邏輯是:

  1. 先接受一個字符串輸入,作爲虛擬無線網的主機名;
  2. 再接受一個字符串輸入,作爲虛擬無線網的密碼,如果密碼第8位是空的(長度小於8),那麼提示讓用戶重新輸入;
  3. 使用主機名和密碼設置虛擬無線網主機;
  4. 把虛擬無線網的模式設置成啓用
  5. 開啓虛擬無線網;
  6. 輸出無線網的用戶名和密碼;

其實這個代碼中,同樣因爲考慮到通用性,加上了第4步。因爲有人告訴我,在運行netsh wlan start hostednetwork的時候出現了“hosted network couldn’t be started.The group or resources is not in the correct state to perform the required operation.”這樣的報錯。

如果某臺電腦上確實有無線網卡,驅動也安裝的正確,那麼報錯的原因就有這樣一種可能:虛擬的無線網絡連接在“網絡和共享中心”中被禁用了

這種虛擬的網絡連接,一般自動命名是“無線網絡連接”或者“Wireless Network Connection”,後面可能會跟個空格和標號。那麼我們就先將這個連接啓用,然後再開始。

其實說起來,有些鼠標10秒可以解決的異常,額外的提高“通用性”的代碼可能需要用10分鐘去查命令,20分鐘查作用,30分鐘查參數。不過個人認爲,任何一種程序,都應該考慮到各種可能性去適應儘可能多的用戶,而不是讓用戶手動更改環境去滿足你的運行需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章