
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, xcopy
parecia 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.bat
roteiro 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 result
variá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