我想跳过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
答案 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