2012-11-25 4 views
0

필자는 invoke-expression을 사용하여 다른 powershell 스크립트를 호출하는 배치 파일을 호출하는 버튼이있는 powershell windows 형식을 사용합니다. 스크립트가 잘 실행되지만 powershell 명령 창에 두 번째 스크립트의 출력이 표시되지 않습니다. 클릭invoke-espression의 출력을 표시하는 powershell

버튼은 두 번째 PowerShell 스크립트를 호출

$run = New-Object System.Windows.Forms.Button 
$run.Location = New-Object System.Drawing.Size(133,430) 
$run.Size = New-Object System.Drawing.Size(75,23) 
$run.Text = "Run" 
$run.Add_Click({ Invoke-Expression \\$pc\c$\users\$user\desktop\a\test.bat; 

}) 
[System.Windows.Forms.MessageBox]::Show("Changes Saved. Now click RUN.") }) 

두 번째 PowerShell 스크립트 호출하는 데 사용되는 배치 파일 : C : \ WINDOWS \ SYSTEM32 \의 WindowsPowerShell \ V1.0의 \의 파워 쉘의 -ExecutionPolicy이를 RemoteSigned를 - 파일 "C : \ Users \ kam \ Desktop \ a \ Powershell.ps1"

두 번째 스크립트 자체는 원격 호스트에 파일을 복사하고 write-host 명령을 사용하여 출력을 표시합니다. 이 스크립트를 단독으로 실행하면 출력이 표시되지만 호출 식을 사용하여 실행하면 빈 powershell 명령 창이 표시됩니다.

어떤 도움을 주시면 감사하겠습니다. 고정 Image of what is shownj when the second script runs

답변

0

, 내가 PowerShell을 호출하는 박쥐 파일을 호출했기 때문에 그것이 은, 난 그냥 직접 PowerShell 스크립트를 호출하고 출력이 표시됩니다.

$run = New-Object System.Windows.Forms.Button 
$run.Location = New-Object System.Drawing.Size(133,430) 
$run.Size = New-Object System.Drawing.Size(75,23) 
$run.Text = "Run" 
$run.Add_Click({ Invoke-Expression \\$pc\c$\users\$user\desktop\a\powershell.ps1; 

}) 
[System.Windows.Forms.MessageBox]::Show("Changes Saved. Now click RUN.") }) 
관련 문제