変数があり、キャピタルのみがあるかどうかを確認する必要があります。例えば:
ABCDEFは一致する必要があります
しかし、ABcdefはすべきではありません
どうすればいいですか?
変数があり、キャピタルのみがあるかどうかを確認する必要があります。例えば:
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
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
)