【问题标题】:how to skip the first line in CSV file如何跳过 CSV 文件的第一行
【发布时间】:2015-09-18 15:02:48
【问题描述】:

我想跳过生成 CSV 文件时第一行的名称、路径。我不知道该怎么做,也不知道该怎么做。

这是我的代码:

function Get-Path{
    param($Object)

    $path = $object.Name
    $parent = Get-View $Object.ExtensionData.ResourcePool
    while($parent){
    $path = $parent.Name + "/" + $path

        if($parent.Parent){
            $parent = Get-View $parent.Parent
        }
        else{$parent = $null}
    }
    $path
}

Get-VM | Select Name,
@{N="Path";E={(Get-Path -Object $_) -replace "^.*?Resources"}} | Export-csv C:\izaz\test.csv -NoTypeInformation

【问题讨论】:

    标签: powershell csv


    【解决方案1】:

    导出无标题的 CSV 文件最简单的方法是使用 ConvertTo-Csv,然后使用 Select-Object 跳过第一行:

    Get-VM `
    | Select Name, @{N="Path";E={(Get-Path -Object $_) -replace "^.*?Resources"}} `
    | ConvertTo-Csv -NoTypeInformation `
    | Select-Object -Skip 1 `
    | Set-Content -Path C:\izaz\test.csv
    

    【讨论】:

    • 我来发布几乎这个确切的解决方案。干得好培根,这是这个问题的理想答案。
    【解决方案2】:

    Import-CSV -Header $StringWithAlternateHeader 将为您要导入 CSV 的数组设置标题。它不会替换任何现有的标头。如果您在导入前没有从 CSV 中删除旧标头,则旧标头将成为数组中的一条记录。

    Example CSV:
    Name,Age
    Sally,15
    Paul,14
    
    $Array = Import-CSV .\example.csv
    ARRAY[0] is Sally,15
    ARRAY[1] is Paul,14
    
    $Array = Import-CSV .\example.csv -Header @("Child","Age")
    ARRAY[0] is Name,Age
    ARRAY[1] is Sally,15
    ARRAY[2] is Paul,14
    

    【讨论】:

      【解决方案3】:

      如果您计划将 csv 文件与 Import-csv 一起使用,请查看 cmdlet 文档中的 -header 参数。此参数允许您指定替代列名,而不是存储在 csv 文件中的列名。

      这是接受答案的另一种方法。

      【讨论】:

      • 实际上,这与 OP 的要求相反(导入没有标题的 CSV,而不是导出没有标题的 CSV)。
      • 你是对的,除了它还涵盖了一个表头导出和另一个表头导入的情况。 OP 不清楚其意图是使用 ps 还是使用其他应用程序读取 csv。
      【解决方案4】:

      你可以使用一个简单的 IF 语句来去掉你的标题行。

      $Array = Import-CSV .\example.csv -Header @("Child","Age")
      if ($Array.Child -ne "Child)" {
      
      ARRAY[1] is Sally,15
      ARRAY[2] is Paul,14
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 2018-06-12
        • 2014-04-12
        • 2020-12-15
        • 2012-06-09
        • 1970-01-01
        • 2015-01-09
        相关资源
        最近更新 更多