我有这个代码
for /l %%a in (0, 1, 25) do (
if /i !TextAlphabet!==!Alphabet[%%a]! (
set AlphabetNumber=%%a
)
)
!Alphabet[]!
是一个包含字母的数组。
我尝试回显!TextAlphabet!
和!Alphabet[%%a]!
,当它们相同时,%AlphabetNumber%
仍然是我在循环之前设置的值。
我尝试检查变量中的空格,但没有找到。
我还尝试在“”标签中添加变量。
答案1
如果您想检查一个变量是否只包含字母,您可以使用findstr
,如下所示:
set var=Abc
echo %var%|findstr "^[A-Za-z]*$" >nul
if %errorlevel% == 0 (echo Variable is alphabetical)
怎么运行的
变量被回显,然后管道到findstr
命令,它将使用正则表达式匹配字母字符:
^
匹配行首;[A-Za-z]
定义了一个字符类匹配从 A 到 Z 的任意字符,包括大写和小写;*
重复前一类的零次或多次出现;$
匹配行尾。
如果匹配,则将变量设置为,否则。%errorlevel%
输出将重定向到,因此被忽略。0
1
findstr
nul