PowerShell Удалить заголовки столбцов

У меня есть следующий код, который экспортирует в файл CSV права доступа к папке из корневого пути:

$RootPath = "\\R9N2WRN\Test Folder"
$OutFile = "C:\CodeOutput\Permissions.csv"
$Header = "Folder Path,IdentityReference"
Del $OutFile
Add-Content -Value $Header -Path $OutFile 

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}
foreach ($Folder in $Folders)
{
    $ACLs = get-acl $Folder.fullname | 
    ForEach-Object { $_.Access  } | 
    Where {$_.IdentityReference -notlike "*BUILTIN*" -and $_.IdentityReference -notlike "*NT AUTHORITY*"}
    Foreach ($ACL in $ACLs)
        {
        $OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference
        Add-Content -Value $OutInfo -Path $OutFile
        }
}

Выходной файл имеет заголовки столбцов «Путь к папке» и «IdentityReference», и, поскольку я хочу запустить этот скрипт на нескольких корневых путях, есть ли способ избавиться от отправки этих заголовков столбцов с выводом в файл CSV?


person The Woo    schedule 12.06.2014    source источник


Ответы (2)


В вашем случае вы можете запустить Export-CSV с флагом -Append, включая первый раз

Your_Data_In_Pipe | Export-Csv Your_File.csv -Append -NoTypeInformation

Если вы действительно хотите удалить первую строку вашего CSV-файла, вы можете использовать:

Get-Content Your_File.csv | select -Skip 1 | Set-Content Your_FileBis.csv
person JPBlanc    schedule 13.06.2014

Я знаю, что это старый пост, и на него был дан ответ, но я подумал, что это может быть полезно для других.

Я хотел сделать что-то подобное, но не хотел записывать вывод в файл, читать, а затем переписывать. Поэтому я сделал это вместо этого:

Your_Data_In_Pipe | ConvertTo-Csv -NoTypeInformation | select -Skip 1 | Set-Content File_Without_Headers.csv
person LedHed    schedule 10.07.2015