
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 xcopy
schien 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.bat
Skript, 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, result
um 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