harachte67
Goto Top

Leerzeichen in Ausgabe bei Powershell

Wer kann mir bei der Powershell weiter helfen.

Hallo,

habe ein Problem bei der Powershell was wahrscheinlich nur an meiner Eingabe liegt, finde aber den Fehler nicht. Folgendes schiebe ich in die Powershell:

Get-Childitem P:\DNC | where {$_.mode -match "d"} | Sort-Object "NAME" | Format-Table -Property Name -AutoSize -HideTableHeaders | Out-File -FilePath "C:\Users\schwahx5\Desktop\Export-Folderstructure.txt"

Leider kommt dann die Ausgabe mit jeder Menge leerzeichen im Textfile an. Da ich dieses aber weiterverwenden in einem Array, findet es die Ordner nicht mehr. Das sieht geauso aus aus wie folgt:

1&1 Surf-Stick
7-Zip
Adobe
Altiris
Assyst Enterprise
Avocent
Cisco
Citrix
CIV
Common Files
ConfigAdvisor
CRYPTOCard
Dell
DIFX
DVD Maker
ELOenterprise
FLV_Runner
FreePDF_XP
GIS_GRPCreate
Google
GPSoftware

Ginbt es eine Möglichkeit die Leerzeichen zu Unterdrücken oder besser gesagt "Wo liegt mein Fehler"?

Wäre Super wenn mir da jemand weiterhelfen kann.

Content-Key: 203345

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: 106543
106543 14.03.2013 um 14:47:02 Uhr
Goto Top
Hi,

tut mir Leid dir das sagen zu müssen, aber der "Fehler" liegt nicht bei dir sondern bei der PowerShell.
Zumindest hab ich immer die Erfahrung gemacht, dass die Powershell bei Ausgabe nicht an Leerzeichen geizt ;)
Kleines Workaround -> Replace-Befehl Leerzeichen in nichts

Grüße
Exzellius
Mitglied: filippg
filippg 14.03.2013 um 20:33:14 Uhr
Goto Top
Hallo,

der Fehler liegt im Format-Table. Die PS ist Objektorientiert und kann mit ihren Objekten auch gut umgehen - und sie z.B. ohne Leerzeichen speichern. Aber mit dem ft weißt du sie an, diese Objekte in eine Zeichenkette mit Formatierungszeichen umzuwandeln.
Wenn du die Daten später weiterverwenden willst, lässt du das ft am besten weg, und verwendest für den Export ein export-csv.

Gruß

Filipp
Mitglied: Harachte67
Harachte67 15.03.2013 um 15:42:10 Uhr
Goto Top
Leider haben auch die Foldernames Leerzeichen drinne. Ihr kennt doch die User, Namenskonvention "Nein Danke". Aber wir werden sehen.
Mitglied: Harachte67
Harachte67 15.03.2013 um 15:45:01 Uhr
Goto Top
Das mit dem Export-CSV war ein guter Gedanke. Manchmal kommt man selbst nicht drauf. Habe jetzt einen kurzen einzeiler der genau das tut was er soll und das CSV kann man ja auch mit dem Editor öffnen. Hat sogar noch einen weiteren Vorteil, der Delimiter " ist auch schon enthalten. Hier mein Einzeiler:

Get-ChildItem C:\ -Recurse | Where { $_.mode -match "d"} | select Name | Export-Csv test.csv

Kurz knapp aber sehr effizient. Danke Dir filippg!
Mitglied: Harachte67
Harachte67 24.04.2013 aktualisiert um 12:29:42 Uhr
Goto Top
Habe endlich eine andere Lösung gefunden:


# Check temp folder for output
$path = "C:\temp\PS1_output_store\"
$date = Get-Date -format "d-MM-yy"
If(-not(Test-Path -Path $path))
{
New-Item -Path $path -ItemType Directory
}

# Write foldernames from second level
gci \\WNS006\DPOOLNT1 | Where-Object { $_.psiscontainer } | Where-Object { $_.mode -match "D" } | ForEach-Object { $_.fullname } | Out-File -FilePathC:\temp\PS1_output_store\WNS006-DPOOLNT1.txt

# show output in writen textfile
notepad "C:\temp\PS1_output_store\WNS006-DPOOLNT1.txt"**//

Somit wird sogar ein Prüfung gestartet ob der Ablage Ordner für das File Existiert das File abgelegt und aufgerufen, was die Ordner mit kompletten Pfad bis zur gewollten Ebene beinhaltet und das ganz ohne Leerzeichen.