Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Windows CMD检查变量是否只有大写字母_Windows_Batch File_Cmd - Fatal编程技术网

Windows CMD检查变量是否只有大写字母

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

我有一个变量,我需要检查它是否只有大写字母。例如:

ABCDEF应该匹配

但ABcdef不应该这样做


我该怎么做呢?

使用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
)