Länge des Benutzereingabe-Batches begrenzen

Länge des Benutzereingabe-Batches begrenzen

Ich brauche entweder einen nativen Befehl oder ein einfaches, leichtes Dienstprogramm eines Drittanbieters, mit dem ich eine Umgebungsvariable in einer Batchdatei festlegen, diese aber auf eine bestimmte Anzahl von Zeichen beschränken kann.

Zum Beispiel:

Geben Sie hier Ihre Nachricht ein (max. 28 Zeichen):

Dann kann der Benutzer natürlich nur 28 Zeichen eingeben.

Irgendwelche Ideen?

Danke!

Antwort1

Nach einigem Suchen xcopyschien dies die beste Wahl zu sein.

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!"

holt einen Schlüssel ab, mit dem man die Eingabe aufbauen kann.

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

ermöglicht eine Kontrolle der Länge (in Ihrem Fall 28).


Sie können auch dieinput.batSkript, das ich geschrieben habe. Mithilfe eines Makros können Sie die Ausgabe des Skripts abrufen. Zuerst deklarieren Sie das Makro:

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

dann benutzt du es so:

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

Sie können die Variable dann verwenden, resultum Ihre Eingabe zu erhalten.

WICHTIG

Zur Definition des Makros muss die verzögerte ExpansionDEAKTIVIERT. Bei der Verwendung muss jedoch eine verzögerte ExpansionERMÖGLICHT.


Ressourcen

xcopy-Eingabe- DosTips.com

Batch-Makros- DosTips.com

verwandte Informationen