program story

계속하려면 아무 키나 누르십시오.

inputbox 2020. 12. 7. 08:06
반응형

계속하려면 아무 키나 누르십시오.


이 질문에 이미 답변이 있습니다.

마이크로 소프트에 따르면 문서 , read-host사용자가 어떤 입력을 입력 한 다음 키를 눌러 계속 입력 할 수 있습니다. "계속하려면 아무 키나 누르십시오"를 원하는 경우 정확히 올바른 동작이 아닙니다. (잠깐 ... Any열쇠는 어딨어?!)

이를 수행하는 방법이 있습니까? 같은 거 read-char?

나는 "단일 문자 입력"과 "Powershell 입력"을 검색하여 많은 운없이 입력을 얻는 모든 방법의 목록을 찾을 수 있는지 확인했습니다. 그리고 실제로 "키를 누르십시오 ..."기능에 대해 작동 read-host하지 않는 희망적인 사용으로 보이는 몇 가지 스택 오버플로 질문 .


여기 내가 사용하는 것이 있습니다.

Write-Host -NoNewLine 'Press any key to continue...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');

MSDOS를 에뮬레이트하기 위해 약간의 Powershell 기능을 만들었습니다 pause. 이는 Powershell ISE 실행 여부를 처리합니다. ( Powershell ISE 에서는 작동 ReadKey하지 않습니다 ). Powershell ISE를 실행할 때이 함수는 Windows MessageBox. 이것이 MessageBox항상 최전선에 있는 것은 아니기 때문에 때때로 혼란 스러울 수 있습니다 . 어쨌든, 여기에 간다 :

용법: pause "Press any key to continue"

기능 정의 :

Function pause ($message)
{
    # Check if running Powershell ISE
    if ($psISE)
    {
        Add-Type -AssemblyName System.Windows.Forms
        [System.Windows.Forms.MessageBox]::Show("$message")
    }
    else
    {
        Write-Host "$message" -ForegroundColor Yellow
        $x = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    }
}

.NET 클래스 ReadKey()메서드를 확인하십시오 System.Console. 나는 그것이 당신이 찾고있는 것을 할 것이라고 생각합니다.

http://msdn.microsoft.com/en-us/library/system.console.readkey(v=vs.110).aspx

예:

Write-Host -Object ('The key that was pressed was: {0}' -f [System.Console]::ReadKey().Key.ToString());

참고 URL : https://stackoverflow.com/questions/20886243/press-any-key-to-continue

반응형