########################################################### # Schreibt alle Metadaten in eine Datei im JSON-Format und # erzeugt zusätzlich eine Textdatei mit Key:Value-Paaren ########################################################### function Write-Object { Param( [string]$Path, [array]$Objects ) Process { $date = Get-Date -Format f Out-File $Path -InputObject "Datum/Uhrzeit : $date" foreach ($obj in $Objects) { Out-File C:\Users\tb\Desktop\Projekt\Data.txt -Append -InputObject "---------------------------------------------------" foreach ($prop in $obj.PSObject.Properties) { $Name = "{0,10}" -f $prop.Name Out-File $Path -Append -InputObject "$Name : $($prop.Value)" } } } } $InputPath = $env:Work + '\Archiv' $Shell = New-Object -ComObject Shell.Application $InputFolder = $Shell.namespace($InputPath) $InputItems = $InputFolder.Items() $json = @() foreach ($Item in $InputItems) { $info = "" | Select-Object Dateiname, Betreff, Titel, Stichworte, Siehe_auch, Kommentar $info.Dateiname = $InputFolder.getDetailsOf($Item, 0) Write-Host "Processing: $($info.Dateiname)" $info.Betreff = $InputFolder.getDetailsOf($Item, 22) $info.Titel = $InputFolder.getDetailsOf($Item, 21) $info.Stichworte = $InputFolder.getDetailsOf($Item, 18) $info.Siehe_auch = $InputFolder.getDetailsOf($Item, 20) $info.Kommentar = $InputFolder.getDetailsOf($Item, 24) $json += $info } $json | ConvertTo-Json | Out-File C:\Users\tb\Desktop\Projekt\Data.json Write-Object -Path C:\Users\tb\Desktop\Projekt\Data.txt -Objects $json Pause