『壹』 cmd if命令中定義變數值
改成這樣就行了:
@echo off
set /p a=請輸入:
echo.
if %a% == before set b=gggggggg
if %a% == after set b=hhhhhh
echo %b%
pause
注意雙等號兩邊要有空格,並且去除before和after兩邊的引號
另外,樓上方法也行
『貳』 在cmd命令行中是否可以使用if命令
可以,這是cmd自帶的內部命令,而且是一個非常重要的命令。
『叄』 關於CMD下IF命令的一些特殊用法
If在批處理程序中執行條件處理。
語法
if [not] errorlevel number command [else expression]
if [not] string1==string2 command [else expression]
if [not] exist filename command [else expression]
如果啟用了命令擴展,請使用以下語法:
if [/i] string1 compareop string2 command [else expression]
if cmdextversion number command [else expression]
if defined variable command [else expression]
參數
not
指定只有當條件為假時才執行該命令。
errorlevel number
只有當由 Cmd.exe 運行的前一個程序返回大於或等於 number 的退出代碼時,才能指定真條件。
command
指定只有滿足前面的條件時才應執行的命令。
string1==string2
只有當 string1 和 string2 相同時才能指定真條件。這些值可以是文字字元串或批處理變數(例如,%1)。對於文字字元串,不需要使用問號。
exist filename
如果 filename 存在,則指定真條件。
CompareOp
指定 3 個字母的比較運算符。下表列出了 compareop 的有效值。
/i
強制字元串比較忽略大小寫。可以在 if 的 string1==string2 形式上使用/i。這些比較是通用的,如果 string1 和 string2 都由所有的數字組成,那麼字元串將被轉換為數字並且將執行數字比較。
cmdextversion number
只有當與 Cmd.exe 的「命令擴展」功能相關的內部版本號等於或大於 number 時,才指定真條件。第一個版本是 1。當命令擴展的功能有重大增強時,則在此號碼上加 1。當禁用了命令擴展時(默認情況下為啟用),cmdextversion 條件不為真。
defined variable
如果定義了 variable,則指定條件為真。
expression
指定將傳遞給 else 子句中命令的命令行命令和任何參數。
/?
在命令提示符顯示幫助。
注釋
如果 if 命令中指定的條件為真,則系統將執行該條件後的命令。如果條件為假,則 if 子句中的命令將被忽略,同時執行 else 子句中的任何命令(如果指定)。
程序停止時,將返回退出碼。可以利用 errorlevel 參數將退出碼用作條件。
使用 defined variable
如果使用 defined variable,可以添加下面三個變數:%errorlevel%、 %cmdcmdline% 和 %cmdextversion%。
『肆』 cmd中的if命令
1、判斷。ture就執行false就不執行。
2、var是自定義變數,要用%%框起來,讓系統賦值。
3、字元串的話一般嚴謹點都拿「」框起來,不框也可以,但是不夠嚴謹
4、用嵌套解決嚴謹性問題(只要不是[1|2|3]的話,輸出請重新輸入,並跳轉到開頭)
5、最好聲明下變數
@echo off
:menu
echo 1.開啟DEP
echo 2.關閉DEP
echo 3.退出
set ver= ::聲明變數,嚴謹性
set /p var=請選擇(1或2或3):
if "%var%"=="1" (
bcdedit /set nx optin
) else (
if "%var%"=="2" (
bcdedit /set nx alwaysoff
) else (
if "%var%"=="3" (
exit
) else (
cls&echo 輸入錯誤,請重新輸入
pause>nul ::暫停&去回顯
cls&goto menu ::清屏&重開始
)
)
)