2016-06-28 130 views
4

PS上的相對新手。我有一個簡單的CSV文件:Powershell導入CSV輸出「@ {」

Computer,Team 
server,team1 
server2,team2 
server3,team2 

我希望將此列表導入PS。我用下面的命令,我將用它來針對每臺計算機的名稱執行查詢:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
$Servers = $Serverlist | Select Computer 
Foreach ($Computer in $Servers) 
    {etc etc} 

$ SERVERLIST和$服務器的輸出,我期望它。然而,每個$計算機呈現給PS爲:

@{$_.Computer=server} 
@{$_.Computer=server2} 
@{$_.Computer=server3} 
etc 

我尋找「服務器」,「服務器2」,「服務器3」等我在做什麼錯嗎?

感謝

回答

3

$Computer您的foreach循環裏面不只是你正在尋找的價值。實質上,它是一個名爲「計算機」的屬性的自定義對象。如果你只是想在單一的「計算機」屬性的字符串表示,使用select -ExpandProperty像這樣:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
$Servers = $Serverlist | Select -ExpandProperty Computer 
Foreach ($Computer in $Servers) 
    {etc etc} 

或更簡單地說,你可以這樣寫:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 
Foreach ($Computer in $serverlist.Computer) 
    {etc etc} 

,或者,如果您需要更多屬性:

$Serverlist = import-csv "c:\temp\appsupportAll.txt" 

foreach ($server in $serverlist) { 
    $server.team 
    $server.computer 
} 
+0

美麗!我其實應該知道,因爲我已經在同一個腳本的其他地方完成了這個工作!萬分感謝 – JDGEEK

+0

接受我的答案! :) –

+0

雖然我無法得到「簡單」的工作方式,但空白。我對第一個感到滿意。我還需要讓計算機關聯的團隊編輯 – JDGEEK