0

シナリオに応じてボタン付きの小さなWindowsGUIフォームを作成するスクリプトがあります。

->クリックすると、これらのボタンはリモートファイル共有上のそれぞれのファイルを開きます;以下はコードです;

$run.Add_Click({Invoke-Expression "Powershell \\Fileshare\$Random_File.Doc"}.GetNewClosure())

->私の問題は、クリックした後でもファイルが開きます; フォームはまだバックグラウンドでぶら下がっています。私はそれを閉じる方法を知りたいです(そして私がPowerShell全体を閉じることができればさらに良いです); invoke内に";exit"を埋め込もうとしましたが、エラーが発生しました。他に方法はありますか?

質問や説明が必要な場合は私に尋ねてください。

4

1 に答える 1

6

開きたいInvoke-Item \\fileshare\$fileドキュメントに対して新しい PowerShell を実行するよりもはるかにうまく機能すると思います。

フォームを閉じるには、 $this.Parent (?).Close() を追加するか、単に $form 変数を参照します - これも機能するはずです:

$form = New-Object System.Windows.Forms.Form
$run = New-Object System.Windows.Forms.Button -Property @{
    Location = New-Object System.Drawing.Point -Property @{
        X = 0
        Y = 0
    }
    Text = 'Run'
}
$run.Add_Click({
    Invoke-Item C:\Windows
    $form.Close()
})
$form.Controls.Add($run)
$form.ShowDialog()
于 2013-02-01T21:49:51.657 に答える