2017-12-11 13 views
-5

편집하라는 메시지를 표시 할 때 응답 "입력"PowerShell은 C 형 #에서 스크립트를 실행해야합니다 내가 C 번호에서 PowerShell 명령을 실행하려고 애 쓰고 있었어요나는 프로그램이 나에게

많은 주위의 질문을 변경

이 내 코드입니다

를 메시지가 표시되면 I가 원하는 경우,

나는 프로그램이 예를 들어 그것을

을 요청 할 때 프롬프트 입력을 위해 일부 데이터를 듣고 싶은> 그것을 사용자의 입력을 전송 명령을 실행하십시오. ftp을 입력 한 다음 입력하라는 메시지가 나타나면 quit을 입력하십시오. Powershell로이 작업을 수행 할 수 있습니까?

private string RunScript(List<string> scriptText) 
    { 
     StringBuilder stringBuilder = new StringBuilder(); 
     Runspace runspace = RunspaceFactory.CreateRunspace(); 
     runspace.Open(); 
     Pipeline pipeline = runspace.CreatePipeline(); 
     pipeline.Commands.Add("Out-String"); 
     foreach (string str in scriptText) 
     { 
      Command cmd = new Command(str, false); ; 
      pipeline.Commands.Add(cmd); 
     } 
     pipeline.InvokeAsync(); 

     while (!pipeline.Output.EndOfPipeline) 
     { 
      stringBuilder.AppendLine(pipeline.Output.ToString()); 
     } 

     runspace.Close(); 
     return stringBuilder.ToString(); 
    } 
+0

참조 무엇 첫 번째 명령은 cmdlet을, 기능, 스크립트 파일 또는 실행할 수있는 프로그램의 경우 발생 - 즉 오류가 발생하지 않습니다? – PaulF

+0

'dir | ipconfig' :'dir '의 출력은'ipconfig'로갑니다. – PetSerAl

+0

이전 질문에 답을 얻은 경우 해결 된 것으로 표시해야합니다. 새로운 질문이 있으면 새로운 질문을해야합니다. 질문을 완전히 바꾸어서는 안됩니다. – PetSerAl

답변

0

그것은 당신이 달성하려고하는,하지만 불분명 :

  • 을 programm 종료를 첫 번째 오류에 따라서 두 번째 명령은 코드에서 오류가 발생
  • 호출되지 않습니다, Test1 이었기 때문에 하지가 발견, 나는 Test2을 가정 거라고 볼 수 woudn't도
  • 스크립트를, 또는 명령은
존재한다

예 : 더

PowerShell ps = PowerShell.Create(); 
ps.AddScript(“D:\PSScripts\MyScript.ps1”).Invoke(); 

Adding and invoking commands

+0

의 경우, tets1과 test2를 dir 및 ipconfig로 바꿨지 만 두 번째 명령의 출력 만 표시합니다. – Mich

+0

죄송합니다. 많은 질문을 다시 정리했습니다. 두 번째 스크립트가 아닌 입력을 추가해야합니다. – Mich