2012-11-25 64 views
0

我有一個PowerShell窗體,它有一個按鈕,它使用invoke-expression調用一個批處理文件,然後調用另一個PowerShell腳本。該腳本運行正常,但我沒有看到在PowerShell命令窗口中的第二個腳本的輸出。點擊它時,powershell顯示來自invoke-espression的輸出

按鈕調用第二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 \ PowerShell的-ExecutionPolicy RemoteSigned就是 - 文件「C:\ Users \ kam \ Desktop \ a \ Powershell.ps1」

第二個腳本本身只是將文件複製到遠程主機,並使用write-host命令顯示輸出。如果我自己運行這個腳本,它會顯示輸出,但是當我使用調用表達式運行它時,它會顯示一個空白的powershell命令窗口。

任何幫助,將不勝感激。 Image of what is shownj when the second script runs

回答

0

固定, 這是因爲我調用bat文件來調用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.") }) 
相關問題