Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/cplusplus11/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
Batch file 批处理文件输入验证-确保用户输入了字母_Batch File_User Input - Fatal编程技术网

Batch file 批处理文件输入验证-确保用户输入了字母

Batch file 批处理文件输入验证-确保用户输入了字母,batch-file,user-input,Batch File,User Input,正如标题所示,我如何请求用户输入,如果不是一个字母goto:这个。 我正在制作一个批处理文件来搜索指定的网络驱动器并返回.exe文件列表 I have done this but with to much code, i.e. If "%choice%"=="a" goto :scan If "%choice%"=="b" goto :scan etc. 谢谢 使用VBScript可以更轻松地完成此操作,但这里有一个批处理解决方案: setlocal enabledelayedexpansi

正如标题所示,我如何请求用户输入,如果不是一个字母goto:这个。 我正在制作一个批处理文件来搜索指定的网络驱动器并返回.exe文件列表

I have done this but with to much code, i.e. 
If "%choice%"=="a" goto :scan
If "%choice%"=="b" goto :scan
etc.

谢谢

使用VBScript可以更轻松地完成此操作,但这里有一个批处理解决方案:

setlocal enabledelayedexpansion
set /p choice=
set map=abcdefghijklmnopqrstuvwxyz
for /l %%i in (0,1,25) do (
    if /i %choice% equ !map:~%%i,1! goto scan
)
exit
:scan

使用VBScript可以更轻松地执行此操作,但这里有一个批处理解决方案:

setlocal enabledelayedexpansion
set /p choice=
set map=abcdefghijklmnopqrstuvwxyz
for /l %%i in (0,1,25) do (
    if /i %choice% equ !map:~%%i,1! goto scan
)
exit
:scan
几乎没有-只有在条目包含


差不多了-只有当条目包含

时才显示失败,我似乎无法让它工作。。。我会回到以前的状态。谢谢我似乎无法让它工作。。。我会回到以前的状态。谢谢我似乎无法让它工作。。。我会回到以前的状态。谢谢我似乎无法让它工作。。。我会回到以前的状态。谢谢
@ECHO Off
SETLOCAL
SET letter=&SET /p letter="Please choose a single letter "
IF NOT DEFINED letter ECHO No choice made&GOTO :eof
ECHO "%letter%"|FINDSTR /i /b /e /r \"[a-z]\" >NUL
IF ERRORLEVEL 1 (ECHO NOT a single letter) ELSE (ECHO "%letter%" is a single letter)