You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell特定条件下调用GetType()方法未向终端返回输出问题

原因说明

这是PowerShell默认的输出格式化机制导致的:
当脚本连续输出多个不同类型的对象时,PowerShell会优先匹配第一个输出对象的类型对应的格式化规则,来处理后续所有输出内容。如果后续输出的对象类型和首个对象的类型不兼容,格式化器就会跳过渲染这部分内容,不会在终端展示。

你提供的脚本里,第一个输出的$ArrayList展开后所有元素都是[PSCustomObject]类型,PowerShell为这类对象匹配了表格输出格式,表格的列定义完全基于[PSCustomObject]的Username、Path、Type三个属性。后续$Transformed.getType()返回的是[System.RuntimeType]类型的对象,没有匹配上述表格的属性,所以被格式化器过滤,没有输出到终端。

当你注释掉$ArrayList行后,脚本首个输出的对象就是[System.RuntimeType]类型,PowerShell会匹配该类型对应的格式化规则,所以可以正常输出类型信息。

解决方法

可以通过以下任意一种方式强制显示$Transformed.getType()的结果:

  • 追加Out-Host直接将内容输出到终端,不受全局格式化规则影响:
$Transformed.getType() | Out-Host
  • 显式指定输出格式:
# 强制按表格输出
$Transformed.getType() | Format-Table
# 或者按列表输出
$Transformed.getType() | Format-List

内容的提问来源于stack exchange,提问作者fmotion1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:15:06