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