Doc*_*Who 2 windows cmd if-statement batch-file
我有一个批处理脚本,当用户输入数字时,我需要在其中设置多个变量。由于某些原因,该国没有定下来。我究竟做错了什么?
set /P CLIENTOPTION=CLIENT:
IF /I '%CLIENTOPTION%'=='1' set CLIENTCHOICE=y set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='2' set CLIENTCHOICE=w set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='3' set CLIENTCHOICE=x set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='4' set CLIENTCHOICE=y set COUNTRY=USA
IF /I '%CLIENTOPTION%'=='5' set CLIENTCHOICE=z set COUNTRY=CANADA
Run Code Online (Sandbox Code Playgroud)
这可以变得更健壮,但您所缺少的只是&命令分隔符。
set /P CLIENTOPTION=CLIENT:
IF /I '%CLIENTOPTION%'=='1' set CLIENTCHOICE=y&set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='2' set CLIENTCHOICE=w&set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='3' set CLIENTCHOICE=x&set COUNTRY=UK
IF /I '%CLIENTOPTION%'=='4' set CLIENTCHOICE=y&set COUNTRY=USA
IF /I '%CLIENTOPTION%'=='5' set CLIENTCHOICE=z&set COUNTRY=CANADA
Run Code Online (Sandbox Code Playgroud)
该作业使用 后同一行上的所有内容=。例如,对于CLIENTOPTIONS === 1,变量CLIENTCHOICE将被分配到 后的所有内容=,即字符串"y set COUNTRY=UK"。显然,这不是你想要的。
您可以通过使用括号并将每个操作放在单独的行上来解决此问题并获得预期的行为,如下所示:
set /P CLIENTOPTION=CLIENT:
IF /I '%CLIENTOPTION%'=='1' (
set CLIENTCHOICE=y
set COUNTRY=UK
)
IF /I '%CLIENTOPTION%'=='2' (
set CLIENTCHOICE=w
set COUNTRY=UK
)
IF /I '%CLIENTOPTION%'=='3' (
set CLIENTCHOICE=x
set COUNTRY=UK
)
IF /I '%CLIENTOPTION%'=='4' (
set CLIENTCHOICE=y
set COUNTRY=USA
)
IF /I '%CLIENTOPTION%'=='5' (
set CLIENTCHOICE=z
set COUNTRY=CANADA
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7023 次 |
| 最近记录: |