2016-06-28 101 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