mexx
Goto Top

Powershell Export-CSV Append Formatunterschied

Ich verwende diesen Powershell Befehl, um eine Ordnerstruktur in eine TXT zu exportieren.

Get-ChildItem "C:\Users\kschweitzer\test\1" -recurse |Export-CSV "C:\users\kschweitzer\export.txt" –notype

Das ist das Ergebnis.

#TYPE System.IO.FileInfo
PSPath,PSParentPath,PSChildName,PSDrive,PSProvider,PSIsContainer,Mode,Name,Length,DirectoryName,Directory,IsReadOnly,Exists,FullName,Extension,CreationTime,CreationTimeUtc,LastAccessTime,LastAccessTimeUtc,LastWriteTime,LastWriteTimeUtc,Attributes
Microsoft.PowerShell.Core\FileSystem::C:\Users\kschweitzer\Private\test\1\1.txt,Microsoft.PowerShell.Core\FileSystem::C:\Users\kschweitzer\Private\test\1,1.txt,C,Microsoft.PowerShell.Core\FileSystem,False,-a---,1.txt,17,C:\Users\kschweitzer\Private\test\1,C:\Users\kschweitzer\Private\test\1,False,True,C:\Users\kschweitzer\Private\test\1\1.txt,.txt,"08.05.2009 07:11:30","08.05.2009 05:11:30","08.05.2009 07:11:30","08.05.2009 05:11:30","08.05.2009 07:11:51","08.05.2009 05:11:51",Archive

Nun möchte ich im gleichen Format etwas an die gleiche Datei anhängen und verwende dafür diesen Befehl.

Get-ChildItem "C:\Users\kschweitzer\test\1\1.txt" |out-file "C:\users\kschweitzer\export.txt" -append -encoding unicode

Nun steht in der Datei das hier drin.

#TYPE System.IO.FileInfo
PSPath,PSParentPath,PSChildName,PSDrive,PSProvider,PSIsContainer,Mode,Name,Length,DirectoryName,Directory,IsReadOnly,Exists,FullName,Extension,CreationTime,CreationTimeUtc,LastAccessTime,LastAccessTimeUtc,LastWriteTime,LastWriteTimeUtc,Attributes
Microsoft.PowerShell.Core\FileSystem::C:\Users\kschweitzer\Private\test\1\1.txt,Microsoft.PowerShell.Core\FileSystem::C:\Users\kschweitzer\Private\test\1,1.txt,C,Microsoft.PowerShell.Core\FileSystem,False,-a---,1.txt,17,C:\Users\kschweitzer\Private\test\1,C:\Users\kschweitzer\Private\test\1,False,True,C:\Users\kschweitzer\Private\test\1\1.txt,.txt,"08.05.2009 07:11:30","08.05.2009 05:11:30","08.05.2009 07:11:30","08.05.2009 05:11:30","08.05.2009 07:11:51","08.05.2009 05:11:51",Archive


V e r z e i c h n i s : M i c r o s o f t . P o w e r S h e l l . C o r e \ F i l e S y s t e m : : C : \ U s e r s \ k s c h w e i t z e r \ P r i v a t e \ t e s t \ 1


M o d e L a s t W r i t e T i m e L e n g t h N a m e

- - - - - - - - - - - - - - - - - - - - - - - - - - -

- a - - - 0 8 . 0 5 . 2 0 0 9 0 7 : 1 1 1 7 1 . t
x t


Das Out-File verwendet ein anderes Format als das Export-CSV, obwohl es sich um die gleiche Datenmenge handelt. Was muss ich verwenden, um ein identisches Format zu erhalten?

Content-Key: 115562

Url: https://administrator.de/contentid/115562

Printed on: April 20, 2024 at 03:04 o'clock

Mitglied: 77559
77559 May 08, 2009 at 09:28:03 (UTC)
Goto Top
Export-csv hat ja auch einen ganz anderen Zweck, es dient dazu Objekte mit allen Informationen zu speichern, um sie später zu vergleichen/verarbeiten oder über Systemgrenzen zu transportieren. Deine erste Ausgabe entspricht übrigens nicht dem Befehl weil die Type Information enthalten ist.

GCI ... | Out-file packt den Text den es erhält mit deinen Anweisungen an die Datei ohne sich um irgendeinen vorherigen Inhalt zu kümmern.

Das einfachste ist wohl du schreibst mit export-csv in eine neue Datei und hängst die aneinnader z.Bsp. mit Add-Content.
Alternative Einlesen in Var und DirEinträge als Objekte über foreach anhängen und dann den Export-CSv

Gruß
LotPings