Limite de comprimento do lote de entrada do usuário

0

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

Por exemplo:

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

Então, é claro, o usuário só pode colocar 28 caracteres.

Alguma idéia?

Obrigado!

    
por N. Johnson 30.01.2018 / 17:26

1 resposta

1

Após pesquisar, xcopy pareceu 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 pode usar a input.bat 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 variável result para obter sua entrada.

IMPORTANTE

Para definir a expansão atrasada da macro, é necessário DISABLED . Ao usá-lo, no entanto, a expansão atrasada precisa ser ATIVADA .

Recursos

entrada xcopy - DosTips.com

macros em lote - DosTips.com

    
por 11.08.2018 / 13:32