Limitar o comprimento do lote de entrada do usuário

Limitar o comprimento do lote de entrada do usuário

Preciso de um comando nativo ou de um utilitário simples e leve de terceiros que possa usar para definir uma variável de ambiente em um arquivo em lote, mas limitá-lo a um determinado número de caracteres.

Por exemplo:

Digite a mensagem aqui (máximo de 28 caracteres):

Então é claro que o usuário só pode inserir 28 caracteres.

Alguma ideia?

Obrigado!

Responder1

Depois de pesquisar, xcopyparecia ser a escolha mais sólida.

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

busca uma chave, com a qual você pode construir a entrada.

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

permite verificações de comprimento (no seu caso 28).


Você também podeinput.batroteiro que escrevi. Usando uma macro você pode buscar a saída do script. Primeiro você declara a macro:

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

então você usa assim:

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

Você pode então usar a resultvariável para obter sua entrada.

IMPORTANTE

Para definir a expansão macro atrasada precisa serDESABILITADO. Ao usá-lo, no entanto, a expansão atrasada precisa serHABILITADO.


Recursos

entrada xcopiar- DosTips.com

macros em lote- DosTips.com

informação relacionada