我正在使用此代码制作输入框
做{ $ label = [Microsoft.VisualBasic.Interaction] :: InputBox(“实体USB音量”,“音量”,'PLUS que 0 ET MOINS de 12caractères') },直到($ label.length -lt 12-和!($ label -eq“”))
但是当用户单击取消按钮时,我需要脚本停止。
有没有一种方法可以测试何时取消?
答案 0 :(得分:0)
是的。
您的代码不正确。好吧,你的逻辑不是。
您使用的是相同的结果,因此cancel永远无效,因此msgbox永远不会关闭/重绘的原因。
这个..
$label = [Microsoft.VisualBasic.Interaction]::
...将始终包含按下哪个按钮的结果。
所以,这个...
until (($label.length -lt 12) -or ($label -eq ''))
如果您想深入了解MsgBox之类的事情,请see this sample script.
理想情况下,您可以看做自己的WinForm或WPF对话框,它为您提供了更多的控件和可视化表达。请参见MS powershellgallery.com
中的该模块Find-Module -Name AnyBox
Version Name Repository Description
------- ---- ---------- -----------
0.3.3 AnyBox PSGallery Designed to facilitate script input/output with an easily customizable WPF window
Find-Module -Name AnyBox | Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules" -Force
Install-Module -Name AnyBox