[英]Powershell Where command not working
我有一個文本文件,其中包含用'='符號分隔的元素(即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和get-content。 我敢肯定任何一個都可以。 這是我使用的一種方法,計算上沒關系。 如果以編程的方式有所作為,我全都可以聽到!!!
感謝你的幫助。
Setting
屬性本身的值沒有Title
屬性。
您需要在提取所需的屬性值之前應用到Where
(如注釋中所述 ):
$BlueSettings = $Import_Cfg |where {$_.Title -match "Blue"} |Select-Object -ExpandProperty Setting
或者,使用屬性枚舉:
$BlueSettings = ($Import_Cfg |where {$_.Title -match "Blue"}).Setting
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.