Ограничить длину пакета пользовательского ввода

Ограничить длину пакета пользовательского ввода

Мне нужна либо собственная команда, либо простая сторонняя утилита, которую я могу использовать для установки переменной среды в пакетном файле, но ограничить ее определенным количеством символов.

Например:

Введите сообщение здесь (максимум 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

Связанный контент