0

私は、invoke-expression を使用して別の powershell スクリプトを呼び出すバッチ ファイルを呼び出すボタンを持つ powershell Windows フォームを持っています。スクリプトは正常に実行されますが、powershell コマンド ウィンドウに 2 番目のスクリプトからの出力が表示されません。

クリックすると 2 番目の 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.") })

2 番目の PowerShell スクリプトを呼び出すために使用されるバッチ ファイル: c:\Windows\System32\WindowsPowerShell\v1.0\powershell -ExecutionPolicy RemoteSigned - File "C:\Users\kam\Desktop\a\Powershell.ps1"

2 番目のスクリプト自体は、ファイルをリモート ホストにコピーし、write-host コマンドを使用して出力を表示するだけです。このスクリプトを単独で実行すると出力が表示されますが、invoke 式を使用して実行すると空白の powershell コマンド ウィンドウが表示されます。

任意の助けをいただければ幸いです。 2 番目のスクリプトの実行時に表示されるイメージj

4

1 に答える 1

0

修正されました。これは、PowerShellを呼び出すためにbatファイルを呼び出していたためです。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.") })
于 2012-11-25T18:40:21.907 に答える