1

変数があり、キャピタルのみがあるかどうかを確認する必要があります。例えば:

ABCDEFは一致する必要があります

しかし、ABcdefはすべきではありません

どうすればいいですか?

4

2 に答える 2

3

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
于 2012-10-04T16:21:22.697 に答える
2

lessthanidealには、文字列に大文字のみが含まれていることを厳密に検証するソリューションがあります。しかし、句読点や数字は許可されるべきかどうか疑問に思いますか?その場合は、小文字の存在を確認することをお勧めします。

また、FINDSTRコマンドの出力を確認する必要がないため、NULにリダイレクトできます。&&また、 and演算子を使用して、||成功と失敗を検出できます。

echo(変数が。の代わりに未定義の場合に空白行がエコーされるように使用していますECHO is on.。ほとんどの人がを使用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
)
于 2012-10-04T17:33:50.417 に答える