
バッチ ファイルで環境変数を設定するために使用できるネイティブ コマンドまたは軽量でシンプルなサード パーティ ユーティリティが必要ですが、特定の文字数に制限する必要があります。
例えば:
ここにメッセージを入力してください (最大 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