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

Например:

Введите здесь сообщение (не более 28 символов):

Тогда, конечно, пользователь может ввести только 28 символов.

Есть идеи?

Спасибо!

1 ответ1

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 input - DosTips.com

пакетные макросы - DosTips.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .