【问题标题】:How to Pass property selection as parameter如何将属性选择作为参数传递
【发布时间】:2015-06-23 10:14:08
【问题描述】:

我有包含各种列/字段的 csv 文件。我有一个处理 csv 文件的脚本。 我想将我想从 csv 文件中选择的属性传递给脚本。

例如如果 csv 文件看起来像:

HotfIxId、名称、日期、已安装

我只想选择 HotfixId 和 Date,我愿意:

Import-Csv path.csv | select -Property HotfixId,Date

这行得通。

但是,如果我将“HotfixId,Date”作为名为 $columnsParam 的参数传入

然后在脚本中做

Import-Csv path.csv | select -Property $columnsParam

这不起作用,我只得到一个标题为 1 列的空返回

HotfixId,日期

如何将属性传递给脚本,或者如何在 select -property 语句中使用/取消引用它们?

非常感谢

【问题讨论】:

  • $columnsParam 必须是一个数组:$columnsParam = "HotfixId","Date"

标签: arrays csv select powershell-3.0


【解决方案1】:

作为@CB。在 cmets 中对您的问题说,属性列表必须是一个数组:

$columnsParam = 'HotfixId', 'Date'
Import-Csv path.csv | select -Property $columnsParam

如果将$columnsParam 定义为单个字符串,Select-Object 将选择(不存在的)属性HotfixId,Date,而不是HotfixIdDate 这两个属性。

【讨论】:

  • 谢谢大家,$columns 参数已经被定义为一个数组 [string[]] $columnsParam。我是否需要将参数传递给脚本,例如“HotfixId”、“Date”而不是“HotfixID,Date”?我会试试看。谢谢
  • @Keith 是的。使用"HotfixID,Date" 只是放置在$columns[0] 位置的数组的一个值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 2020-04-21
  • 2018-04-02
相关资源
最近更新 更多