Limitar la longitud del lote de entrada del usuario

Limitar la longitud del lote de entrada del usuario

Necesito un comando nativo o una utilidad de terceros simple y liviana que pueda usar para configurar una variable de entorno en un archivo por lotes, pero limitarla a una cierta cantidad de caracteres.

Por ejemplo:

Introduzca el mensaje aquí (28 caracteres como máximo):

Entonces, por supuesto, el usuario sólo puede introducir 28 caracteres.

¿Algunas ideas?

¡Gracias!

Respuesta1

Después de buscar, xcopyparecía ser la opción más 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 una clave, con la que puedes construir la entrada.

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

permite comprobar la longitud (en su caso 28).


También puedes elinput.batguión que escribí. Al utilizar una macro, puede recuperar el resultado del script. Primero declaras la 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=

entonces lo usas así:

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

Luego puede usar la resultvariable para obtener su entrada.

IMPORTANTE

Para definir la expansión macro retrasada es necesarioDESACTIVADO. Sin embargo, mientras se usa, es necesario corregir la expansión retrasada.ACTIVADO.


Recursos

xcopiar entrada-DosTips.com

macros por lotes-DosTips.com

información relacionada