私はこのコードを持っています
for /l %%a in (0, 1, 25) do (
if /i !TextAlphabet!==!Alphabet[%%a]! (
set AlphabetNumber=%%a
)
)
!Alphabet[]!
はアルファベットを含む配列です。
エコーしてみました!TextAlphabet!
および!Alphabet[%%a]!
そしてそれらが同じであるとき、%AlphabetNumber%
は、ループの前に設定した値です。
変数の空白をチェックしようとしましたが、見つかりませんでした。
また、「」タグに変数を追加してみました。
変数に文字のみが含まれているかどうかを確認する場合は、次のようにfindstr
を使用できます。
set var=Abc
echo %var%|findstr "^[A-Za-z]*$" >nul
if %errorlevel% == 0 (echo Variable is alphabetical)
変数がエコーされ、 piped がfindstr
コマンドに送られます。このコマンドは、 正規表現 を使用してアルファベット文字を照合します。
^
は行頭に一致します。[A-Za-z]
は、大文字と小文字の両方で、AからZまでの任意の文字に一致する 文字クラス を定義します。*
は前のクラスの0回以上のオカレンスを繰り返します。$
は行末に一致します。一致する場合は%errorlevel%
変数が0
に設定され、一致しない場合は1
に設定されます。 findstr
出力はnul
にリダイレクトされるため、無視されます。