如何跳过POWERSHELL中CSV文件的第一行

时间:2015-07-01 12:39:43

标签: powershell csv

我想跳过Name,Path,它是生成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

4 个答案:

答案 0 :(得分:7)

导出没有标题的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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

这是接受答案的替代方法。

答案 3 :(得分:0)

您可以使用简单的IF语句来摆脱标题行。

RewriteCondition