能否在PowerShell中用单条命令实例化对象并设置属性?
PowerShell单命令实例化WinForms窗体并运行的问题解决
你写的合并命令有两个关键问题导致报错:
- 脚本块内的类型语法错误:
System.Windows.Forms.Form]::new()漏了开头的[,变成]开头后,PowerShell解析器无法正确识别类型定义,直接触发括号不匹配的提示。 - 变量未初始化:脚本块里没先给
$f赋值就直接调用$f.Text,就算括号修正后也会报变量未定义的错误。
修正后的正确单条命令如下,将原本分开的脚本块内容完整嵌入即可:
[System.Windows.Forms.Application]::Run(&{$f=[System.Windows.Forms.Form]::new();$f.Text="Aloha!";$f})
另外还有更简洁的写法,利用PowerShell的对象初始化器特性,无需脚本块就能一行完成:
# PSv5+ 支持的对象初始化语法 [System.Windows.Forms.Application]::Run([System.Windows.Forms.Form]@{Text="Aloha!"}) # 或者调用构造函数时传入属性哈希表 [System.Windows.Forms.Application]::Run([System.Windows.Forms.Form]::new(@{Text="Aloha!"}))
内容的提问来源于stack exchange,提问作者Peter M.
相关产品推荐
相关产品推荐

