批量使用“ CALL”命令时出现问题

时间:2019-12-11 18:02:06

标签: command-line call

现在在这里可能是一个棘手的问题...

我有一个脚本,要求输入必需的字符串,不能为空。如果为空,则返回错误:

@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命令,并且可能会破坏我的代码,因为它的功能远不止于此。

“通话”怎么了?

0 个答案:

没有答案