代码之家  ›  专栏  ›  技术社区  ›  TOGEEK

Powershell导入CSV输出“@{”

  •  4
  • TOGEEK  · 技术社区  · 9 年前

    PS上的相对新手。我有一个简单的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和$Servers的输出与我预期的一样。然而,每台$Computer呈现给PS的形式如下:

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

    我在找“server”、“server2”、“server3”等。请问我做错了什么?

    谢谢

    2 回复  |  直到 9 年前
        1
  •  3
  •   Avshalom    9 年前

    $Computer 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
    }
    
        2
  •  0
  •   Adrian Mole Chris    5 年前

    如果您的输入文件没有标题,请使用以下内容:

     $Serverlist = Get-Content "c:\temp\appsupportAll.txt"
    
     $Serverlist | % {whatever you need}