Powershell命令$ table.Columns.Add(" NewFieldName")导致意外输出到控制台

时间:2016-09-29 15:44:17

标签: powershell

以下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

预期产出:

我的问题是:

  1. 为什么?
  2. 如何防止此输出与输出的其余部分一起出现在控制台上?

1 个答案:

答案 0 :(得分:0)

TLDR :像这样添加[void]

[void]$table.Columns.Add("NewFieldName")

为什么?因为默认情况下PowerShell会将命令的返回值/对象输出到控制台(或接收输出的任何内容)。

如何防止此输出与输出的其余部分一起进入控制台?感谢@PetSerAl指出在命令左侧添加[void]的解决方案。这会将命令的返回类型转换为[void],而不会输出到控制台。

在@PetSerAl指出正确的方向后,我发现这些页面有助于清理事情: