我写了这段代码,
set /p Letter=Enter your FavoriteLetter:
if "%1" == "" (
echo Usage: Enter Your Birth Date EX. (November)
exit /b 1
)
setlocal enableDelayedExpansion
我想做的是获取他们输入的用户信,并使用for循环遍历所有环境变量,然后返回我发现从他们输入的给定字母开始的数量。如果你有时间,请向我解释,我想学习以及找出答案。
答案 0 :(得分:1)
试试这样:
setlocal enabledelayedexpansion
set "$c=0"
set /p "$Answer=Enter a letter : "
for /f "delims=" %%a in ('set %$Answer% 2^>nul') do (
set /a $c+=1
echo No !$c! ==^> %%a
)
if !$c!==0 goto:error
exit/b
:error
Echo Env. Var. : %$Answer% ==^> Not Defined
答案 1 :(得分:0)
@ECHO Off
SETLOCAL
SET /p "letter=Choose a letter "
IF NOT DEFINED letter GOTO :eof
SET "letter=%letter:~0,1%"
FOR /f %%a IN ('2^>nul set %letter% ^|find /c "=" ' ) DO SET count=%%a
ECHO %count% variables START "%letter%"
GOTO :EOF
letter
(如果已定义)的值设置为0后的一个字符(即仅第一个字符)set
,该参数列出从此开始的所有变量。 2>nul
可以抑制错误。 find
并计算(/c
)包含=
的行。 count