【发布时间】:2020-10-28 20:27:26
【问题描述】:
我在 powersheel 中创建了复杂的表单应用程序,它也在 Powershell ISE 和 powershell 控制台中正常运行,但行为几乎没有区别:
当我通过在 Windows 资源管理器中双击运行应用程序时,powershell 控制台打开,但是创建所有表单控件(复选框、标签、按钮......)的“调试”数据太多。启动时间太长,看起来像这样:
TextImageRelation : Overlay UseMnemonic : True UseCompatibleTextRendering : True UseVisualStyleBackColor : True AccessibilityObject : ControlAccessibleObject: Owner = System.Windows.Forms.CheckBox, CheckState: 0 AccessibleDefaultActionDescription : AccessibleDescription : AccessibleName : AccessibleRole : Default AllowDrop : False Anchor : Top, Left AutoScrollOffset : {X=0,Y=0} LayoutEngine : System.Windows.Forms.Layout.DefaultLayout BackgroundImage : BackgroundImageLayout : Tile BindingContext : {} Bottom : 208 Bounds : {X=165,Y=190,Width=96,Height=18} CanFocus : False CanSelect : False Capture : False CausesValidation : True ClientRectangle : {X=0,Y=0,Width=96,Height=18}
此输出不在 powershell ISE 中(没有)- 应用程序立即启动。
我无法解决这个问题,如果可能的话,我想在从控制台运行时删除调试输出 - 以加快脚本启动速度。
脚本源代码与网上的例子相同,例如: https://docs.microsoft.com/en-us/powershell/scripting/samples/creating-a-custom-input-box?view=powershell-7
我试过哟添加|某些控件/行的 Out-Null - 我在日志中看到,但没有帮助。
我还尝试通过手动向控制台添加一些控件来确定哪个命令正在输出,但没有生成该输出。
我尝试创建 ISE 配置文件并将其加载到从控制台运行的脚本中,但没有帮助,因为创建的配置文件是空的。
如果我像这样运行新的控制台窗口:
start-process powershell -argumentlist "-noexit", "-noprofile" 并从中运行脚本,它可以在没有日志的情况下工作。
但是如果我像这样运行脚本:
start-process powershell -argumentlist "-noexit", "-noprofile", "-command $path"
它再次输出日志。
任何想法如何做到这一点?我应该检查/修改什么。
谢谢。
【问题讨论】:
-
天哪,我发现它是什么了。我正在准备一些示例脚本以将其添加到此处,脚本名称中的空格正在生成此日志输出。如果我将其删除,则没有日志输出。真的很伤心,我花了这么多时间来解决问题。
-
很抱歉听到:/ 如果您解决了问题,您可以为自己的问题写一个答案。也许你可以这样帮助别人。
-
但经常发生的情况是,准备将代码发布到此处有助于解决问题:)
标签: forms powershell