以下PowerShell脚本会导致意外,并且在我的情况下会产生不需要的输出到控制台:
$table = New-Object System.Data.DataTable
$table.Columns.Add("NewFieldName")
意外输出:
AllowDBNull : True
AutoIncrement : False
AutoIncrementSeed : 0
AutoIncrementStep : 1
Caption : NewFieldName
ColumnName : NewFieldName
Prefix :
DataType : System.String
DateTimeMode : UnspecifiedLocal
DefaultValue :
Expression :
ExtendedProperties : {}
MaxLength : -1
Namespace :
Ordinal : 0
ReadOnly : False
Table : {}
Unique : False
ColumnMapping : Element
Site :
Container :
DesignMode : False
预期产出:
我的问题是:
答案 0 :(得分:0)
TLDR :像这样添加[void]
[void]$table.Columns.Add("NewFieldName")
为什么?因为默认情况下PowerShell会将命令的返回值/对象输出到控制台(或接收输出的任何内容)。
如何防止此输出与输出的其余部分一起进入控制台?感谢@PetSerAl指出在命令左侧添加[void]的解决方案。这会将命令的返回类型转换为[void],而不会输出到控制台。
在@PetSerAl指出正确的方向后,我发现这些页面有助于清理事情: