‘壹’ 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 ::清屏&重开始
)
)
)