Getchar () analógico na linha de comando do Windows?

1

Eu preciso ler apenas 1 char (número, para ser exato) do cmd.exe. Deve ser feito em apenas um toque de tecla. Isso é possível? Não só cmd.exe, mas quero dizer todos os utilitários padrão no Windows (suportado pelo WinXP-Win7).

PS set /p val=request não é o que eu estou procurando . Ele lê string, não apenas 1 char e requer a tecla enter . Eu preciso de algo que funcione como OnKeyDown : leia 1 char e continue a execução do script, sem enter necessário.

    
por SmartiesForTheWin 28.06.2011 / 19:46

1 resposta

1

Not only cmd.exe, but I mean all standard utilities in windows (supported by WinXP-Win7).

Por que seria necessário, digamos, edlin.exe ? Isso é um requisito absurdo.

Se você quiser solicitar um único caractere, retornando imediatamente após a inserção de um, então você terá que usar o algum utilitário extra além do que vem na caixa do Windows. NT 5.1, mesmo que seja simplesmente um clone Win32 do programachoice.com do MS-DOS 6.2% (que, sendo um programa do MS-DOS, não funcionará no Windows x86-64, é claro).

Com TCC / LE da JP Software , que é um substituto intérprete de comandos, o comando INKEY faz exatamente o que você pede e pode ser usado assim:

inkey %%key

A tecla pressionada está então na variável de ambiente key .

Como alternativa, no Windows NT 4.0 Server Resource Kit e posterior, a Microsoft fornece choice.exe , que é um clone do Win32 do MS-DOS choice.com . Note, no entanto, que este é o Servidor Resource Kit. Com o Windows NT Server 5.2 e posterior, choice.exe é empacotado com o próprio Windows . No entanto, mais uma vez, observe que esta é a edição Servidor do Windows.

    
por 28.06.2011 / 22:29