您現在的位置是:首頁 > 音樂首頁音樂
[一葉純淨]第二十六彈 Windows系統個性化(批處理篇7)
必須是批處理中僅有的語句是什麼意思
本期接著上一期的內容,將使用者輸入的值與對應命令進行關聯,這裡我們就需要利用到批處理中的條件判斷語句了。
ApWifi
條件判斷語句
之所以將這一部分單獨分為一章,是因為if語句可能對初次接觸批處理的朋友來說太繁瑣,繞來繞去都是那幾個值,卻又必須按照固定的格式來寫,if語句具有很多個屬性,最簡單常用的語句就是在條件成立的情況下執行特定的命令。
if 條件 結果,
條件可以是很多種情況,比如說兩個變數進行對比是否相等,系統中某個設定開關是否開啟,登錄檔中某一項是否存在等等,而結果就是如果條件成立要執行的命令。
if 條件 結果,
它是使用和上一條基本相同,只是判斷不同,它是在條件
if not 條件 結果,
時執行後面的命令。
不成立
它只能放在if或if not之後的同一行中,不能單獨使用,它是在if或if not條件不滿足語句條件(成立或不成立)時,額外執行的命令,這個詞翻譯成中文是“否則”的意思,這就很好理解了。
else,
它作為一個獨立功能存在,其作用是判斷某檔案是否存在。
if exist 檔案路徑\檔名,
它的作用是開關大小寫區分,如果要判斷的是一個字串的大小,則A>a,且A
if /i,
在if語句中如果要對比兩個變數的值,則需要用到運算子號,在Cmd中的運算子與數學不同,它們的使用方法如下:
EQU - 等於(也可寫為“==”)
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
根據以上內容我們就可以將前文中提到的使用者輸入的值與對應命令關聯起來的了。
set /p choose=請輸入要執行的命令編號:
if %choose%==1 goto 開啟功能
if %choose%==2 goto 開啟承載
if %choose%==3 goto 退出承載
if %choose%==x exit
:開啟功能
netsh wlan set hostednetwork mode=allow ssid=“網路名稱” key=網路密碼
:開啟承載
netsh wlan start hostednetwork
:退出承載
netsh wlan stop hostednetwork
它的意思是,如果使用者輸入值為1,則跳轉到“開啟功能”的跳轉點,如果輸入值為2,則跳轉到開啟承載,如果輸入值為3,則跳轉到退出承載,如果輸入值為x,則退出批處理。
如果這個批處理是自己使用,那麼這樣寫是沒有什麼問題的,因為自己知道只能選擇1、2、3和x是有用的,但如果這個批處理是給其他使用的,以防萬一,我們可以將最後一個條件語句稍加修改:
if not %choose%==x (echo 輸入錯誤) else exit
那麼這樣做是什麼效果呢,根據批處理逐行執行的特性,假設我們輸入的是4,那麼按照順序執行第一條 “if %choose%==1 goto 開啟功能” 時,條件不滿足,繼續執行第二條,直到第四條,但第四條我們修改了滿足條件,如果輸入值不是x,則提示輸入錯誤,否則執行exit命令退出批處理。
這一樣一來,一個批處理的主體部分就已經完成了,將上下文連線起來,加上一些小修改,就完成了一個虛擬AP的批處理了,伸手黨看下面複製 ↓
@echo off
title [一葉純淨]ApWifi虛擬熱點搭建工具
:menu
echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
echo ┃ Windows7一鍵共享wifi ┃
echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
echo [一葉純淨]個人作品,僅允許個人使用,勿作商業用途。未經本人允許,請勿轉載。
echo 1。開啟WIN7虛擬無線AP功能
echo 2。承載網路
echo 3。退出承載網路
echo x。退出
echo。
set /p choose=請輸入相應的序號(輸入X鍵退出):
if %choose%==1 goto 開啟功能
if %choose%==2 goto 開啟承載
if %choose%==3 goto 退出承載
if not %choose%==x (echo 請輸入正確的編號!) else exit
:開啟功能
set /p ssid=請設定虛擬網路名稱:
set /p pwd=請設定8位及以上的密碼或留空:
echo 開始設定虛擬AP,請稍等。。。。
netsh wlan set hostednetwork mode=allow ssid=%ssid% key=%pwd%
goto menu
:開啟承載
cls
netsh wlan start hostednetwork
goto menu
:退出承載
cls
netsh wlan stop hostednetwork
goto menu