执行我的脚本的一部分时,它会挂起一组if语句,而不是运行输出命令。
:errorcheck
echo this is the error test, please verify your wireless profiles are listed below.
netsh wlan show profiles
set /p cog="did your profiles show up properly? (Y/N)"
if %cog%=="Y" goto ending
if %cog%=="N" goto retry
echo an error occured, please retry
goto errorcheck
:retry
它卡在循环中,然后回到:errorcheck
我已经使用echo %cog%
验证了set语句的工作原理,但我无法将其缩小范围。
答案 0 :(得分:1)
您需要引用IF中的环境变量(或删除测试中的引号)
{{1}}
否则评估Y ==" Y"这不是真的
此外,您可能希望添加对Y和N的大写和小写版本的检查,因为它将进行区分大小写的比较
答案 1 :(得分:1)
在If语句中,Y和N周围不需要双引号。您可能还希望更改大写字母Y和N以降低或复制这些行并检查两种情况。
此代码对我有用:
:errorcheck
echo this is the error test, please verify your wireless profiles are listed below.
netsh wlan show profiles
set /p cog="did your profiles show up properly? (Y/N)"
echo reply is %cog%
if %cog%==y goto ending
if %cog%==n goto retry
echo an error occured, please retry
goto errorcheck
:retry
goto errorcheck
:ending