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



稍微晚了一点 祝大家新年快乐,希望你有一个好的。

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

ECHO OFF
set /p %environment%=Connect to Live or Dev?:
IF %environment% = "Live" 
(
C:WindowsSystem32runas.exe /user:livesomeuser /netonly "C:Program Files (x86)Microsoft SQL Server110ToolsBinnManagementStudioSsms.exe"
) 
ELSE IF %environment% = "Dev" 
(
C:WindowsSystem32runas.exe /user:devsomeuser /netonly "C:Program Files (x86)Microsoft SQL Server110ToolsBinnManagementStudioSsms.exe"
) 
ELSE 
(
ECHO "Invalid Option"
)

我已经尝试过在变量周围和不使用 % 的情况下使用它,但它不起作用。 谁能指出我正确的方向?

希望你能帮到忙。

干杯

亚历克斯

这里有一些代码可以让你朝着正确的方向前进。我在Windows 7中使用.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
set /p "environment=Connect to Live or Dev?:"
IF "%environment%"=="Live" (
    ....
) ELSE IF "%environment%"=="Dev" (
    ....
) ELSE (
    ....
)

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

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

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

4 - 当IF命令条件为真时要执行的命令/块,必须以与 if 相同的行开头,因此开始括号不能在下一行

5 - ELSE必须继续IF块,并在自己的块开始之前。IF的右括号和ELSE的起始括号必须在同一行中。

最新更新