2010-05-04 7 views
5

서비스로 돌아 가기 전에 텍스트 스트림을 수정하기 위해 외부 프로세스를 호출 할 수있는 서비스가 실행 중입니다. 텍스트 스트림은 서비스에서 stdout의 외부 프로세스로 전달되고 수정 된 결과는 stdin의 서비스에서 읽혀집니다. 외부 프로세스 (명령)는 텍스트 "필터"로 사용할 수 있습니다. PowerShell 스크립트를 사용하여 텍스트 스트림을 수정하고 싶습니다. 필자는 "powershell -executionpolicy bypass -noninteractive ./myscript.ps1"명령을 사용하여 2008r2에서 win 서비스를 성공적으로 시작할 수 있습니다.Stdin to powershell 스크립트

write-host cmdlet을 사용하여 스크립트가 stdout의 서비스로 텍스트를 반환하도록 할 수 있습니다. 내 문제는 내가 스크립트에서 stdin에있는 텍스트를 읽을 수있는 방법을 찾을 수 없다는 것입니다. 읽기 호스트는 대화식 셸이 필요하므로 작동하지 않습니다.

서비스가 tmp 파일로 작성되는 것을 피하고 서비스가 다중 스레드 (한 번에 둘 이상의 외부 명령을 실행할 수 있음) 및 tmp 파일 관리 (잠금, 고유 한 파일 이름 등)은 바람직하지 않습니다.

이것이 가능할까요? 예를 들어 이것을 위해 사용해야합니까? Powershell은 내 2008 년 모든 기계에 미리 설치되어 있기 때문에 매력적입니다.

답변

5

그냥 추측 - 나는 [Console]::In | gm -static을 보았습니다.

+3

감사합니다. $ line = [Console] :: In.ReadLine()이 트릭을했습니다. – Stefan

관련 문제