Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 循环变量检查_String_Loops_Batch File_Error Handling - Fatal编程技术网

String 循环变量检查

String 循环变量检查,string,loops,batch-file,error-handling,String,Loops,Batch File,Error Handling,在尝试执行某个函数之前,只需检查该函数是否存在。 我担心我可能会尝试使用这个简单的方法,我可能应该在执行流程循环之前检查字符串 SET /P Selection=Please Select Options? echo You chose: %Selection% Call :Process pause goto :EOF :Process for %%A in (%Selection%) do ( if not exist :Opt%%A (Call :Redo) ELSE (Call

在尝试执行某个函数之前,只需检查该函数是否存在。 我担心我可能会尝试使用这个简单的方法,我可能应该在执行流程循环之前检查字符串

SET /P Selection=Please Select Options? 
echo You chose: %Selection% 

Call :Process

pause
goto :EOF

:Process
for %%A in (%Selection%) do (
if not exist :Opt%%A (Call :Redo) ELSE (Call :Opt%%A)
)
GOTO :EOF

:Redo
Echo %Selection%
SET /P Selection=Selection was Invalid, Please choose a Valid Option:
Call :Process
GOTO :EOF

:Opt1
ECHO Option 1's code
GOTO :EOF
所以我遇到的问题是,如果不存在语句,我就会陷入其中,并且不允许函数正确运行


提前感谢

当在标签不存在的情况下执行
调用
命令时,将显示错误消息,但该过程将在调用后以ERRORLEVEL=1的方式继续。为了避免检查标签是否存在,您可以充分利用这一点:

编辑:代码修改为回复注释


此解决方案的可能副本假定所选选择是一个变量,循环的要点是将字符串分隔为单个数组变量。感谢Aacini帮助我在批处理文件中检查错误,非常感谢。
SET /P Selection=Please Select Options? 
echo You chose: %Selection% 

:Process
for %%A in (%Selection%) do (
   Call :Opt%%A 2>NUL
   if errorlevel 1 (
      SET /P Selection=Selection was Invalid, Please choose a Valid Option:
      goto :Process
   )
)

pause
goto :EOF


:Opt1
ECHO Option 1's code
exit /B 0