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

使用PowerShell和Import CSV foreach循环寻址变量

  •  1
  • NealWalters  · 技术社区  · 13 年前

    输入文件:

    "Server1","lanmanserver"
    "Server2","lanmanserverTest"
    

    程序

    $csvFilename = "D:\Scripts\ServerMonitorConfig.csv" 
    $csv = Import-Csv $csvFilename -Header @("ServerName","ServiceName")
    
    foreach ($line in $csv) {
        Write-Host "ServerName=$line.ServerName  ServiceName=$line.ServiceName" 
        }
    

    我想要什么:

    服务器名称=服务器1服务名称=局域网服务器
    服务器名称=服务器2服务名称=局域网服务器T

    我得到的是:

    ServerName=@{ServerName=Server1;ServiceName=lanmanserver}。ServerName ServiceName=@{ServerName=Server1;ServiceName=lanmanserver}.ServiceN ame ServerName=@{ServerName=Server2; ServiceName=lanmanserverTest}.ServerName ServiceName=@{ServerName=Server2;ServiceName=lanmanserverTest}。 服务名

    我真的不在乎Header是否来自CSV的第一行,我在那里很灵活。

    1 回复  |  直到 13 年前
        1
  •  2
  •   mjolinor    13 年前

    您通常会看到用于解决此问题的子表达式或格式字符串:

    子表达式:

    Write-Host "ServerName=$($line.ServerName)  ServiceName=$($line.ServiceName)" 
    

    设置字符串格式:

    Write-Host ('ServerName={0}   ServiceName={1}' -f $line.ServerName,$line.ServiceName)
    
    推荐文章