
Мне нужна либо собственная команда, либо простая сторонняя утилита, которую я могу использовать для установки переменной среды в пакетном файле, но ограничить ее определенным количеством символов.
Например:
Введите сообщение здесь (максимум 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