Ich habe folgende Powershell-Befehl:Wie fügt man einem Objekt/Ergebnis eines Powershell-Ausdrucks eine Spalte hinzu?
dir -r packages.config | % { ([xml](Get-Content $_.FullName)).packages.package; $_.DirectoryName }
, die die XML-Dateien packages.config und ergibt die folgende Ausgabe für das 3 Element parst Attribute:
id version targetFramework -- ------- --------------- log4net 2.0.0 net45 Newtonsoft.Json 8.0.3 net45 protobuf-net 2.0.0.621 net45 C:\code\Services\TestProfile EntityFramework 6.1.1 net45 log4net 2.0.0 net45 Newtonsoft.Json 8.0.3 net45 protobuf-net 2.0.0.621 net45 C:\code\Services\Tests
Hinweis der Verzeichnisname wird nach dem beigefügten Tabellenausgabe (dh keine ID in einer neuen Zeile).
Wie bekomme ich den Verzeichnisnamen als vierte Spalte jeder Zeile statt als zusätzliche Zeile nach jeder XML-Tabelle?
So:
id version targetFramework Path -- ------- --------------- ---- log4net 2.0.0 net45 C:\code\Services\TestProfile Newtonsoft.Json 8.0.3 net45 C:\code\Services\TestProfile protobuf-net 2.0.0.621 net45 C:\code\Services\TestProfile EntityFramework 6.1.1 net45 C:\code\Services\Tests log4net 2.0.0 net45 C:\code\Services\Tests Newtonsoft.Json 8.0.3 net45 C:\code\Services\Tests protobuf-net 2.0.0.621 net45 C:\code\Services\Tests
Snippet aus packages.config, die XML-Struktur zu veranschaulichen:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.0" targetFramework="net45" />
</packages>
'% {$ Pfad = $ _. DirectoryName; ([xml] (Get-Content $ _. FullName)). packages.package | Wähle *, @ {L = 'Pfad'; E = {$ Pfad}} ' –
Danke @ MathiasR.Jessen! Verschieben Sie es zu einer Antwort und ich werde es als die akzeptierte Antwort markieren. –