Windows CMD检查变量是否只有大写字母
我有一个变量,我需要检查它是否只有大写字母。例如: ABCDEF应该匹配 但ABcdef不应该这样做Windows CMD检查变量是否只有大写字母,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个变量,我需要检查它是否只有大写字母。例如: ABCDEF应该匹配 但ABcdef不应该这样做 我该怎么做呢?使用findstr和errorlevel。请参见下面的示例。请注意,您可能期望“^[A-Z]*$”作为模式工作,但它与前面提到的不同 还要注意的是%X%和|字符之间没有空格,这很重要 C:\>SET X=ABCDEF C:\>SET Y=ABcdef C:\>echo %X%| findstr "^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*$" A
我该怎么做呢?使用findstr和errorlevel。请参见下面的示例。请注意,您可能期望
“^[A-Z]*$”
作为模式工作,但它与前面提到的不同
还要注意的是%X%
和|
字符之间没有空格,这很重要
C:\>SET X=ABCDEF
C:\>SET Y=ABcdef
C:\>echo %X%| findstr "^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*$"
ABCDEF
C:\>echo %errorlevel%
0
C:\>echo %Y%| findstr "^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*$"
C:\>echo %errorlevel%
1
使用findstr和errorlevel。请参见下面的示例。请注意,您可能期望
“^[A-Z]*$”
作为模式工作,但它与前面提到的不同
还要注意的是%X%
和|
字符之间没有空格,这很重要
C:\>SET X=ABCDEF
C:\>SET Y=ABcdef
C:\>echo %X%| findstr "^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*$"
ABCDEF
C:\>echo %errorlevel%
0
C:\>echo %Y%| findstr "^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*$"
C:\>echo %errorlevel%
1
lessthanideal有一个解决方案,它将严格验证字符串只包含大写字母。但我想知道是否应该允许使用标点和/或数字?如果是这样,那么最好检查是否存在小写字母 此外,您不需要查看FINDSTR命令的输出,因此可以将其重定向到NUL。您可以使用
&&
和|
操作符来检测成功和失败
我使用的是echo(
),因此如果变量未定义,而不是echo处于启用状态,则会回显一个空行。
。大多数人使用echo。
,但在某些情况下,该表单可能会失败,echo(
从不失败
@echo off
setlocal
set x=ABC_123
set y=AbC_123
echo(%x%|findstr /v "[abcdefghijklmnopqrstuvwxyz]" >nul && (
echo %x% is Valid
) || (
echo %x% is Invalid
)
echo(%y%|findstr /v "[abcdefghijklmnopqrstuvwxyz]" >nul && (
echo %y% is Valid
) || (
echo %y% is Invalid
)
lessthanideal有一个解决方案,可以严格验证字符串只包含大写字母。但我想知道是否应该允许使用标点符号和/或数字?如果是,那么最好检查是否存在小写字母 此外,您不需要查看FINDSTR命令的输出,因此可以将其重定向到NUL。并且您可以使用
&&
和|
操作符来检测成功和失败
我使用的是echo(
),因此如果变量未定义,而不是echo处于启用状态,则会回显一个空行。
。大多数人使用echo。
,但在某些情况下,该表单可能会失败,echo(
从不失败
@echo off
setlocal
set x=ABC_123
set y=AbC_123
echo(%x%|findstr /v "[abcdefghijklmnopqrstuvwxyz]" >nul && (
echo %x% is Valid
) || (
echo %x% is Invalid
)
echo(%y%|findstr /v "[abcdefghijklmnopqrstuvwxyz]" >nul && (
echo %y% is Valid
) || (
echo %y% is Invalid
)