PowerShell에서 프로그램을 실행하면 새 창이 열리고 출력이 표시되기 전에 창이 닫힙니다. PowerShell이이 창을 열어 둘 수 있도록하려면 어떻게해야합니까?명령 창을 열어두기 위해 PowerShell을 얻는 방법?
답변
cmd /c foo.cmd
명령으로 실행되는 배치 파일 (.cmd 또는 .bat 확장자) 인 경우 프로그램을 cmd /k foo.cmd
으로 변경하면 프로그램이 실행되지만 프롬프트가 계속 열려 있습니다.
프로그램이 배치 파일이 아닌 경우 배치 파일로 감싸고 끝에 pause
명령을 추가하십시오. 배치 파일에 프로그램을 래핑하려면 명령을 텍스트 파일에두고 .cmd 확장명을 지정하기 만하면됩니다. 그런 다음 exe 대신 실행하십시오. 일을
시도 :
start-process your.exe -NoNewWindow
필요도 경우 -Wait
를 추가합니다.
몇 주 전에 비슷한 문제를 해결하고있었습니다. & (& '.\program.exe'
)을 사용하지 않으려면 시작 프로세스를 사용하고 시작 프로세스 (출력을 명시 적으로 읽는 곳)로 출력을 읽으십시오. 좋아
param (
$name,
$params
)
$process = New-Object System.Diagnostics.Process
$proInfo = New-Object System.Diagnostics.ProcessStartInfo
$proInfo.CreateNoWindow = $true
$proInfo.RedirectStandardOutput = $true
$proInfo.RedirectStandardError = $true
$proInfo.UseShellExecute = $false
$proInfo.FileName = $name
$proInfo.Arguments = $params
$process.StartInfo = $proInfo
#Register an Action for Error Output Data Received Event
Register-ObjectEvent -InputObject $process -EventName ErrorDataReceived -action {
foreach ($s in $EventArgs.data) { Write-Host $s -ForegroundColor Red }
} | Out-Null
#Register an Action for Standard Output Data Received Event
Register-ObjectEvent -InputObject $process -EventName OutputDataReceived -action {
foreach ($s in $EventArgs.data) { Write-Host $s -ForegroundColor Blue }
} | Out-Null
$process.Start() | Out-Null
$process.BeginOutputReadLine()
$process.BeginErrorReadLine()
$process.WaitForExit()
을 그리고 그것을 전화 :
.\startprocess.ps1 "c:\program.exe" "params"
당신은 쉽게 출력을 재 또는 어떤 종류를 구현할 수있다 (또는 매크로) - 예를 들어,
그냥이 별도의 PS1 파일을 넣어 응용 프로그램이 동결 될 수있는 경우 타임 아웃이 필요합니다.
완벽. 정확히 내가 무엇을 찾고 있었는지. 엄청 고마워. – Saulius
OP가 대답에 만족했을 것 같지만 프로그램을 실행 한 후 새 창을 열어 두지 않습니다. 묻고 (그리고 내가 찾고 있던 대답). 그래서, 좀 더 조사한 후에, 나는 다음을 생각해 냈습니다.
Start-Process cmd "/c `"your.exe & pause `""
- 1. 콘솔 창을 열어두기 위해 창을 설정하는 방법이 있습니까?
- 2. NSRunningApplication의 창을 얻는 방법
- 3. Python에서 명령 창을 시작하는 방법
- 4. Java로 명령 창을 닫는 방법
- 5. 서비스로 안드로이드 브라우저를 열어두기
- 6. 메뉴로 팝업 창을 얻는 방법?
- 7. 명령 창을 사용하는 경우
- 8. DI/IoC 컨테이너로 열어두기
- 9. getch()를 사용하여 명령 프롬프트를 열어두기 Visual C++ 2010
- 10. vim에서 명령 출력 창을 유지하는 방법
- 11. Ruby에서 명령 프롬프트 창을 닫는 방법?
- 12. SQL 관리를 인터넷에 열어두기
- 13. PowerShell을, 문자열을 얻을 내보내기 위해
- 14. Chrome : 프레임 요소의 창을 얻는 방법?
- 15. 다른 플롯으로 두 개의 창을 얻는 방법
- 16. Xcode에서 파일 끌어서 놓기를받을 창을 얻는 방법
- 17. 내 페이지에서 채팅 창을 얻는 방법
- 18. xid에서 Gdk 창을 얻는 방법? python2 + gdk2에서
- 19. 위로 응용 프로그램 창을 얻는 방법
- 20. 새 창을 열려면 ASP.NET MVC를 얻는 방법?
- 21. PowerShell을 사용하여 각 하위 디렉토리에서 명령 실행
- 22. 프로비저닝을 위해 UDID를 얻는 방법?
- 23. powershell을 사용하여 VM의 모든 네트워크 이름을 얻는 방법
- 24. powershell을 사용하여 "self"의 경로를 얻는 것
- 25. 기본 "top 명령"정보를 표시하기 위해 SSH 창을 변경하는 우분투 명령 줄 소프트웨어의 이름은 무엇입니까?
- 26. 명령 창에 나타난 matlab의 출력을 얻는 방법
- 27. FOR 루프의 명령 (요청한 데이터를 얻는 방법)
- 28. 명령 줄에서 리눅스 화면 제목을 얻는 방법
- 29. testng 얻는 방법 명령 줄에서 메시지 실패
- 30. vbs 명령 줄 명령에서 결과를 얻는 방법
이 프로그램은 exe 또는 배치 파일입니까? 실행중인 정확한 명령을 제공 할 수 있습니까? 아마도 실행 파일의 이름을 변경할 수 있습니까? –
그것은 exe입니다. 나는 그 프로그램이 내 경로에있는 폴더를 추가했다. 프로그램의 이름을 입력 할 때 프로그램이 실행되면서 열리는 창을 제외하고는 너무 빨리 닫아서 그 내용을 읽는다. 이 프로그램은 Python 프로그램을 테스트하는 프로그램입니다. 아래 의견에 관해서는 배치 파일에 프로그램을 래핑하는 방법을 모르겠습니다./ – Erman
이를 수행하는 방법을 명확히하기 위해 답변을 업데이트했습니다. 또한 프로그램 출력을 텍스트 파일로 리디렉션하는 것이 좋습니다. –