Batch file 使用If语句和键盘输入批处理文件

Batch file 使用If语句和键盘输入批处理文件,batch-file,if-statement,user-input,Batch File,If Statement,User Input,祝大家新年快乐,希望你们过得愉快 我正在尝试创建一个批处理文件,该文件将接受键盘输入,然后根据该输入启动程序,或者如果输入的选项无效,则显示错误消息。但它不起作用。以下是到目前为止我得到的信息: ECHO OFF set /p %environment%=Connect to Live or Dev?: IF %environment% = "Live" ( C:\Windows\System32\runas.exe /user:live\someuser /netonly "C:\Prog

祝大家新年快乐,希望你们过得愉快

我正在尝试创建一个批处理文件,该文件将接受键盘输入,然后根据该输入启动程序,或者如果输入的选项无效,则显示错误消息。但它不起作用。以下是到目前为止我得到的信息:

ECHO OFF
set /p %environment%=Connect to Live or Dev?:

IF %environment% = "Live" 
(
C:\Windows\System32\runas.exe /user:live\someuser /netonly "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
) 
ELSE IF %environment% = "Dev" 
(
C:\Windows\System32\runas.exe /user:dev\someuser /netonly "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
) 
ELSE 
(
ECHO "Invalid Option"
)
我尝试过使用%和不使用%对变量进行取整,但都不起作用。谁能给我指出正确的方向吗

希望你能帮忙

干杯

亚历克斯

1-在
set
命令中,等号左侧的变量名称不使用
%
符号<代码>%var%sintax用于检索变量的值

2-要测试相等性的运算符是
=
eq
(请参见
if/?

3-在
IF
命令中,应将相同的引号应用于相等运算符的两侧。否则,值将不被视为相等

4-当
IF
命令条件为true时要执行的命令/块必须在IF的同一行中开始,因此开始括号不能在下一行中


5.
ELSE
必须继续执行
IF
块,并在其自身块的开始之前。IF的右括号和ELSE的起始括号必须在同一行。

这里有一些代码可以帮助您找到正确的方向。我在Windows7中用一个.cmd文件对此进行了测试

ECHO OFF
SET /p environment="Connect to Live or Dev?"
IF /i "%environment%" == "Live" GOTO live
IF /i "%environment%" == "Dev" GOTO dev
ECHO Invalid Option
GOTO end
:live
ECHO "Live!!!!"
goto end
:dev
ECHO "Dev!!!"
:end
PAUSE

删除
@echo off
以查看发生的情况:1)查看
if
行的翻译方式。2)
必须与
if
3)
在同一条线上)其他(
必须在同一条线上太棒了!太棒了。谢谢你的帮助。你们也一样。干杯
ECHO OFF
SET /p environment="Connect to Live or Dev?"
IF /i "%environment%" == "Live" GOTO live
IF /i "%environment%" == "Dev" GOTO dev
ECHO Invalid Option
GOTO end
:live
ECHO "Live!!!!"
goto end
:dev
ECHO "Dev!!!"
:end
PAUSE