2012-06-24 2 views
0

Powershell ISE를 거의 사용하지 않고 콘솔 앱으로 사용하려고합니다. Comskip은 커맨드 라인 도구이며, 나는 보통 cmd.exe을 통해 Comskip 광고를 실행하는 AHK 스크립트를 가지고있다. 잘 작동하지만 요즘에는 파일 이름에 유니 코드 문자 (별표 평점)를 사용하기 시작했습니다. 모두 알고 있듯이이 문자는 콘솔에서 잘 표시되지 않습니다.이 도움이되지 않는 Powershell ISE 오류 메시지의 원인은 무엇입니까?

조사는 유니 코드를 지원해야하는 Powershell ISE로 안내했습니다. ISE에서 Comskip을 실행하는 것은 꽤 어려운 것으로 판명되었습니다. 모든 것을 수동으로 타이핑하면 잘 작동하지만 다른 스크립트에서 호출 할 때 문제가 시작됩니다.

이제 문제는 일반적인 Powershell 콘솔을 호출하는 코드를 사용하면 문제가 없습니다. 그러나 ISE를 호출하는 동일한 코드가 실패하고 이유를 볼 수 없습니다. 너도 할 수있어? 내가 얻은 오류 메시지는 잘못 된 것에 대한 단서를 제공하지 않습니다. 오류 메시지는 말한다 :

사용법 : powershell_ise.exe 또는 powershell_ise.exe fileName.ps1

이세를 호출하는 AHK 라인은 다음과 같습니다

latest_file := "C:\Program\Comskip\q.ts" 
Run, PowerShell_ISE.exe "C:\Program\Comskip\comskip.exe" -t --videoredo "%latest_file%" 

이제 동일 PowerShell 콘솔을 사용하는 경우 코드가 올바르게 실행됩니다.

어떻게 이러한 예외가 발생합니까?

답변

1

PowerShell ISE에는 powershell.exe와 같은 명령을 실행할 수있는 기능이 없습니다. 그 이유는 간단합니다. ISE는 대화 형 환경으로 설계되었으며, powershell.exe는 사용자가 완료하려고 시도한 것과 같은 대화 형 작업과 "일괄 작업"모두에 대한 것으로 생각되었습니다.

오류는 IMO로 충분히 설명 할 수 있습니다. PowerShell_ISE (매개 변수 없음) 만 실행하거나 ISE가 시작되면 열 수있는 .ps1 파일 만 지정할 수 있습니다. v3에는 2 개의 새로운 추가 기능 (-NoProfile 및 -MTA)이 있지만 여전히 아무도 일괄 처리 도구로 설계하지 않았습니다. 죄송합니다.

관련 문제