Powershell 如何遍历CSV并查找列名

Powershell 如何遍历CSV并查找列名

问题描述

我有一个包含3列的CSV文件:

  Name/desc       Start IPv4 address          End IPv4 Address

最终我需要在powershell中循环遍历此csv并执行以下操作:

  New-AzSqlServerFirewallRule -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -FirewallRuleName "Rule01" -StartIpAddress "192.168.0.198" -EndIpAddress "192.168.0.199"

我对Python很熟悉,但在PowerShell中却遇到了困难。以下是我目前的代码:

$csv = Import-Csv -Path "C:\Pathtofile"

foreach($line in $csv)
{ 
    $properties = $line | Get-Member -MemberType Properties
    for($i=0; $i -lt $properties.Count;$i++)
    {
        $column = $properties[$i]
        $columnvalue = $line | Select -ExpandProperty $column.Name
        if($column.name  -contains 'Start'){
        #write($column)
            write($column.name)
        }
        write($column.name.GetType())
    }
} 

我的想法是首先检查列名是否包含“Start”,“End”或“Name”,但是我的if语句不起作用。我怀疑是因为我试图将对象与字符串进行比较。当我写下GetType()时,我对每一行都看到了这个:

  IsPublic IsSerial Name                                     BaseType                                                                                                                                                             
  True     True     String                                   System.Object 

我不知道这是否意味着它是一个字符串还是其他什么?它看起来像是一个字符串,但我不明白为什么我的if语句不起作用。

我觉得如果能解决这个问题,我大概可以设置变量并在AzSqlServerFirewallRule命令中使用它们。

解决方案

假设列名确切命名为Name/descStart IPv4 addressEnd IPv4 Address,并且您想要执行New-AzSqlServerFirewallRule,您可以简化您的代码来循环遍历$csv中的每个对象,然后可以使用点符号来引用每个属性的值:

$csv = Import-Csv -Path 'C:\Pathtofile'

foreach ($object in $csv) {
    $newAzSqlServerFirewallRuleSplat = @{
        ResourceGroupName = 'ResourceGroup01'
        ServerName        = 'Server01'       
        FirewallRuleName  = $object.'Name/desc'
        StartIpAddress    = $object.'Start IPv4 address'
        EndIpAddress      = $object.'End IPv4 Address'
    }

    New-AzSqlServerFirewallRule @newAzSqlServerFirewallRuleSplat
}

此代码还使用了splatting将参数绑定到您的命令,以提高可读性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程