2014-09-19 3 views
0

텍스트 파일을 매개 변수로 사용하는 Powershell 스크립트를 작성하고 있습니다. 텍스트 파일은 다음과 유사합니다.텍스트 파일의 명령으로 추가 Powershell 인스턴스 시작

echo "1" 
echo "2" 
echo "3" 

원하는 것은 새로운 Powershell 인스턴스에서 각 행을 실행하는 것입니다. 따라서 위 예제에서 3 개의 추가 인스턴스가 만들어지고 각각의 인스턴스는 텍스트 파일에서 한 줄을 실행합니다. 인스턴스를 시작할 수 있지만 파일의 행을 명령으로 처리 할 인스턴스를 가져올 수 없습니다.

$textFile=$args[0] #File with Powershell commands 

foreach($cmdd in get-content $textFile){ 
    cmd /c start powershell -NoExit -command {param($cmdd) iex $cmdd} -ArgumentList $cmdd 
} 

이 코드를 실행하면 인스턴스가 열리고 많은 정보가 인쇄 된 다음 즉시 닫힙니다. 너무 빨리 닫히기 때문에 정보가 무엇인지 알 수 없습니다. 그러나 텍스트 파일은 숫자 1, 2 및 3을 인쇄하는 것으로 만 구성되기 때문에 제대로 작동한다고 생각하지 않습니다. 실행 후 창을 닫지 않게하는 방법이 있습니까?

답변

1

PowerShell에서 PowerShell 인스턴스를 추가로 시작하는 경우 cmd를 호출 할 필요가 없습니다. 사용해보십시오 Start-Process :

$textFile=$args[0] #File with Powershell commands 

foreach($cmdd in get-content $textFile){ 
    Start-Process -FilePath powershell -ArgumentList "-NoExit -Command $cmdd" 
} 

이렇게하면 새로 만든 인스턴스를 열어 두었을 것입니다.

0

CMD/C에서 CMD/K로 전환하여 명령이 끝난 후 명령 세션을 열린 상태로 두십시오.

+0

새로 만든 인스턴스가 여전히 닫힙니다. 나는 그것들을 너무 열어 놓고 싶다. – user2132167

+0

현재 세션 외부에서 인스턴스를 시작하려면 Start-Process를 사용해야합니다. 그러나 나는 당신이 그 맥락에서 당신의 명령 인수에 scriptblock을 사용할 수 있다고 생각하지 않는다. – mjolinor

관련 문제