Powershell哪里命令不起作用

时间:2015-12-17 21:43:36

标签: powershell

我有一个文本文件,其中包含以' ='分隔的元素。符号(即color1 = red,color2 = blue等

我使用了import-csv命令并提供了标题(即

$Import_Cfg = Import-Csv .\Env.cfg -Header Title,Setting -Delimiter =

现在,如果我想知道索引编号并且我已经使用了这种方法但我不想总是为我工作,因为我不会总是知道我想要将特定项目分配给另一个变量还有什么其他数据。

我认为通过使用类似的东西:

$MyColor1 = $Import_Cfg.Setting |where {$_.Title -match "Blue"}

$MyColor2 = $Import_Cfg.Setting |where {$_.Title -match "Red"}

它应该可以工作,但我没有得到任何一项的回报。当我输入$ Import_cfg时,我可以看到整个数组(没有" ="符号)。如果我告诉使用命令

$MyColor1 = $import_cfg[0].setting 

我得到了正确答案。

显然,我没有使用颜色,而是需要将一些不同的项目分配给变量以供其他地方使用。我对自己做错了什么的想法?我读过的所有内容都说我上面的内容应该有效。

请注意我为什么使用import-csv vs get-content。我相信要么会奏效。这是我使用的一种方法,而且在计算上它并不重要。如果以编程方式它会产生影响我全都是耳朵!!!

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Setting属性本身的值没有Title属性。

您需要在之前应用Where ,然后提取所需的属性值(mentioned in the comments):

$BlueSettings = $Import_Cfg |where {$_.Title -match "Blue"} |Select-Object -ExpandProperty Setting

或使用属性枚举:

$BlueSettings = ($Import_Cfg |where {$_.Title -match "Blue"}).Setting