我很难找到这个问题的答案,这可能意味着我问错了问题。
我写了一个包含弹出窗口的PS1脚本,一切都很顺利!我使用了以下方法:
$msgBoxInput = [System.Windows.MessageBox]::Show("You are about to publish Part $UserPart1, would you like to coninue?",'Confirm Update','YesNo')switch ($msgBoxInput)
{
'Yes'
{
Runs Code
}
'No'
{
Return
}
}
这很完美。直到我使用批处理文件启动PS1。
这是我用来运行批处理文件的代码:
Powershell.exe -executionpolicy remotesigned -windowstyle hidden -File "C:\Updater 2.0.ps1"
批处理文件可以正常运行,但弹窗没有出现。因此我改变了策略,尝试使用以下方式来实现弹窗:
$msgBoxInput = [System.Windows.MessageBox]::Show("You are about to publish Part $UserPart1, would you like to coninue?",'Confirm Update','YesNo')
再次出现消息框不弹出的问题。如果我删除消息开头的"$msgBoxInput =",则消息框会弹出,但无论用户选择什么,代码都会像按下"Yes"一样运行。
这可能是完全错误的方法,老实说我不知道。我一直为我的用户组(我有30多个用户)使用批处理文件,因为比尝试使用实际的PS1更容易。如果有更好/更容易的路线,我全耳朵倾听!
这是我使用PS1的第一个表单,所以我可能做错了什么。
感谢大家的帮助。
;}"
时,第二个代码示例应该可以工作。 - zett42-windowstyle hidden
是否是问题所在。隐藏窗口是否也会隐藏弹出窗口? - TheMadTechnician$UserPart1
定义在哪里? - JosefZ