0

入力文字列に5文字以上あるかどうかをチェックする簡単なバッチスクリプトを書きたいと思います。

何かのようなもの:

SET /P INPUT=Enter your string:
IF %INPUT% > 5 (
          ECHO %INPUT% has more than 5 chars
) ELSE (
          ECHO %INPUT% has less than 5 chars
)

.batでこれらの種類のチェックを実行するにはどうすればよいですか?

4

3 に答える 3

3

簡単な部分文字列操作で、5番目に続く文字があるかどうかを確認できます。

if defined INPUT if "%INPUT:~5,1%"=="" (
    echo five or less characters
) else (
    echo more than five characters
)

どこかに実際の数値が必要ない場合は、文字列の長さを把握する必要はありません。長さを取得するためのjebのアプローチはかなり賢いですが(そしてここで使用されているのとまったく同じアイデアです)。

于 2012-10-04T16:36:44.913 に答える
1

バッチファイルスクリプトでは、入力から文字列の長さを取得するのはそれほど簡単ではないことはすでにご存知でしょう。簡単な方法は、入力文字列の最初の5文字(または任意のx文字)が入力文字列と同じであるかどうかをテストすることです。例えば:

SET /P INPUT=Enter your string:
IF [%INPUT%]==[%INPUT:~0,5%] (
      ECHO %INPUT% has more than 5 chars
) ELSE (
      ECHO %INPUT% has less than 5 chars
)

確かに、これは必要になる可能性のあるすべてのロジックシナリオで機能するわけではありませんが、多くのシナリオではかなり簡単です。[]参考までに、空の文字列の比較を防ぐために文字を追加しました。

お役に立てば幸いです...

于 2012-10-04T16:42:20.400 に答える
0

これは、この質問と非常によく似ています。そのために独自の関数を作成し、その結果を5と比較する必要があるようです。幸い、その質問への回答者が関数を提供してくれました。

また、Googleはあなたの友達です。

于 2012-10-04T16:35:19.860 に答える