Passing Verzeichnisinhalt als eine einzige Zeile zu einer ausführbaren Datei in Powershell
-
21-09-2019 - |
Frage
Ich habe eine ausführbare Binärdatei, die eine Liste von Dateipfaden als Argumente verwendet, z. B.
C: \ Tool.exe C: \ Files \ File1.txt C: \ Files \ Datei2.txt
Ich mag dieses Tool von Powershell nennen. Die Frage ist, wie kann ich die Ausgabe von Get-ChildItem alle auf einer Linie?
Wenn ich ausführen:
ls. C: \ Files \ * .txt | Wählen Sie Fullname
Ich bekomme einen Pfad pro Zeile. Wie kann ich die Ergebnisse verketten?
Lösung
In Powershell 2.0 Sie -join Operator verwenden können:
(ls C:\Files\*.txt | %{ $_.FullName }) -join ' '
In Powershell 1.0 können Sie $OFS
eingestellt, die verwendet wird, eine Folge von Elementen zu kombinieren, wenn sie als Zeichenfolge verwendet werden:
$ofs = ' '
"$(ls C:\Files\*.txt | %{ $_.FullName })"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow