我有一个powershell windows窗体,它有一个按钮,使用invoke-expression调用批处理文件,然后调用另一个powershell脚本。脚本运行正常但我没有在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 \ powershell -ExecutionPolicy RemoteSigned - 文件“C:\ Users \ kam \ Desktop \ a \ Powershell.ps1”
第二个脚本本身只是将文件复制到远程主机,并使用write-host命令显示输出。如果我自己运行这个脚本它会显示输出,但是当我使用invoke表达式运行它时,它会显示一个空白的powershell命令窗口。
任何帮助将不胜感激。
答案 0 :(得分: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.") })