【发布时间】:2019-01-09 16:57:41
【问题描述】:
setlocal EnableDelayedExpansion
:adapterloopstart
echo.
echo please enter the type of adapter you would like to create
echo 1. Host-Only
echo 2. Internal
echo.
set ADAPTYPE=
choice /C:12
if ERRORLEVEL 2 set ADAPTYPE=intnet
goto adapterconfirm
if ERRORLEVEL 1 set ADAPTYPE=hostonly
goto adapterconfirm
REM If you got here, it wasn't 1, 2
goto adapterloopstart
echo %ADAPTYPE%
:adapterconfirm
echo %ADAPTYPE%
set confirmadapter=
set /p confirmadapter=Do you wish to create a "%ADAPTYPE%" network (y,n):
if not '%confirmadapter%'=='' set confirmadapter=%confirmadapter:~0,1%
if '%confirmadapter%'=='y' goto adapterend
if '%confirmadapter%'=='n' goto adapterloopstart
ECHO "%choice%" is not valid, try again
:adapterend
上面的代码给出了以下字符串:
你想创建一个“”网络(y,n):
它不显示变量。
我该如何解决这个问题,以便我知道它以正确的选择保存了变量,以便我以后希望重新运行此代码以便获得关于正在发生的事情的反馈?
【问题讨论】:
-
您不应该在最后一个
ECHO命令中使用变量confirmadapter吗?您永远不会设置名为choice的变量。此外,检查 errorlevel 是否为 1 的命令将永远不会运行,因为您之前有一个GOTO。选择命令也只允许您输入选择选项之一。您不需要 goto 命令即可返回到适配器循环开始。 -
不知道为什么你会选择一个输入而不是另一个。选择命令是 YES/NO 问题的完美解决方案。
标签: loops batch-file variables if-statement