ユーザー入力バッチの長さを制限する

ユーザー入力バッチの長さを制限する

バッチ ファイルで環境変数を設定するために使用できるネイティブ コマンドまたは軽量でシンプルなサード パーティ ユーティリティが必要ですが、特定の文字数に制限する必要があります。

例えば:

ここにメッセージを入力してください (最大 28 文字):

当然、ユーザーは 28 文字しか入力できません。

何か案は?

ありがとう!

答え1

いろいろ調べた結果、これxcopyが最も確実な選択だと思いました。

set "key="
for /f "delims=" %%A in ('xcopy /w "%comspec%" "%comspec%" 2^>nul') do if not defined key set "key=%%A"
set "key=!key:~-1!"

入力を構築できるキーを取得します。

if "!input:~-%length%!" == "!input!"

長さのチェックが可能になります (この場合は 28)。


また、input.bat私が書いたスクリプトです。マクロを使用すると、スクリプトの出力を取得できます。まず、マクロを宣言します。

set input=^
for %%. in (1 2) do if %%.==2 (^
    for /F "delims=" %%I in ('input.bat !args!') do ^
        set "result=%%I"^
) else set args=

次のように使用します:

setlocal EnableDelayedExpansion
%input% "prompt=Password: " "length=28"

その後、result変数を使用して入力を取得できます。

重要

マクロを定義するには、遅延展開が必要です無効ただし、使用中は遅延拡張が必要です有効


リソース

xcopy入力- DosTips.com

バッチマクロ- DosTips.com

関連情報