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


0

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

例えば:

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

それからもちろん、ユーザーは28文字でしか置くことができません。

何か案は?

ありがとうございます。


これはそれらを単純な瞬間にしておくもののうちの1つです。ユーザーが入力を入力した後に変数を切り捨てて切り捨てます。 set input=%input:~0,28%
Squashman

残念ながら、それを維持するのはユーザーの手助けになるだけです。基本的に、私は画像に透かしを入れるためにそれを使っていて、彼らが画像から流れ出るようなものを入力しないように文字数を制限する必要がある
N. Johnson

Squashmanが言ったようにそしてあなたのバッチファイルでそうしなさい set input=%input:~0,28% それを解析してファイル名の最初の28文字だけをそのままにします。それについてもっと読む: dostips.com/DtTipsStringManipulation.php
Pimp Juice IT

回答:


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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.