Ik gebruik onderstaand script om de bestandsstructuur van een Powershell project in kaart te brengen, als onderdeel van de documentatie.
001
002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 |
<#
.SYNOPSIS A CSV file will be created, which can be used for documentation i.a. .DESCRIPTION Write log line into configured logfile. Set logfile in settings: Settings.Logfile. .EXAMPLE Export-FileTree2CSV -Path "C:\Temp" -ExportFile test.csv -NumberOfLevelsDeep 10 .EXAMPLE Export-FileTree2CSV -Path "C:\Temp" -ExportFile 'C:\Test\test.csv' .NOTES Written by Stein Salfischberger #> Function Export-FileTree2CSV { [CmdletBinding()] Param ( # Geef hier de directory op welke je gedocumenteerd wilt hebben [Parameter(Mandatory=$True)][string] $Path , # Geef hier de bestandsnaam (eventueel het gehele path) op van het te exporteren bestand (csv) [Parameter(Mandatory=$False)][string] $ExportFile = '..\tijdelijk\AckssPSFileStructure.csv' , # Geen hier een getal op (integer) van het aantal niveaus diep [Parameter(Mandatory=$False)][int] $NumberOfLevelsDeep = 10 ) Get-ChildItem -Recurse -Path $Path | ForEach-Object { $OutputRow = [ordered]@{ 0 = $_.PSIsContainer }; $Elements = $_.FullName.Split('\'); ForEach($Index in 1..$NumberOfLevelsDeep) { $OutputRow[[string]$Index] = $Elements[$Index] }; New-Object PSCustomObject -Property $OutputRow } | Export-Csv -Path $ExportFile -UseCulture -NoTypeInformation } |
Geen opmerkingen:
Een reactie posten