簡體   English   中英

Powershell命令不起作用的地方

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM