现在在这里可能是一个棘手的问题...
我有一个脚本,要求输入必需的字符串,不能为空。如果为空,则返回错误:
@echo off
set $my_var=
:my_question
cls
set /p $my_var="My question (mandatory): "
if not defined $my_var call :error_message
echo.
echo More code here
goto end
:error_message
echo.
powershell -command write-host "*********** ATTENTION ************" -background red -foreground yellow
echo.
echo Answer is mandatory. Press ENTER!
pause > nul
goto my_question
:end
echo.
set $my_var=
echo.
echo Ended
但是,如果用户输入了3次错误,则第一个echo.
和goto end
之间的代码将重复3次。 :end
部分也会重复。 :error_code
中的消息不再重复:
My question (mandatory): 6
More code here
Ended
More code here
Ended
More code here
Ended
More code here
Ended
它甚至都忽略了goto end
命令!我想避免将error_message的代码放在方括号之间,因为我将不得不使用goto命令,并且可能会破坏我的代码,因为它的功能远不止于此。
“通话”怎么了?