cj_berlin 1.329 Geschrieben 13. November 2021 Melden Teilen Geschrieben 13. November 2021 vor 4 Minuten schrieb stefan4711: Wenn man das auch noch sortiert bekämme;) Also ein wenig PowerShell lernen solltest Du schon selber. Was sagt denn die Suchmaschine Deines Vertrauens zu "PowerShell sortieren" ? Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 13. November 2021 Autor Melden Teilen Geschrieben 13. November 2021 weiß nicht ob das für mich noch so sehr viel Sinn macht, bin eigentlich in den meisten Fällen mit dem guten alten Batch gut zurecht gekommen, ist für mich auch wesentlich leichter lesbar, in Powershell sind mir definitiv zuviel geschweifte Klammern ;), da bekomm ich Augenkrebs. Aber ich schaue mal was Tante Google sagt Trotzdem erst mal recht herzlichen Dank Um Deien Frage zu beantworten, je es steht was bei Tante Google, aber wie bei so vielen Quelen was PS angeht passiert wieder mal nichts: Import-Csv .\OutputFiltered.csv | sort Hostname ok ich habs jetzt (blindes Huhn findet auch mal nen Korn lach) Import-Csv -Path 'C:\SC\CSVmerge\OutputFiltered.csv' | sort -Property "Hostname" | Export-CSV -Path C:\SC\CSVmerge\OutputSortedEnd.csv -Delimiter ',' -NoTypeInformation ein schönes Wochende noch 1 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 15. November 2021 Melden Teilen Geschrieben 15. November 2021 Am 13.11.2021 um 16:30 schrieb cj_berlin: Mein obiger Code war damit in unter zwei Sekunden fertig. Dahingegen hat auf demselben Rechner allein der Part mit Select -Unique 30-40 Sekunden in Anspruch genommen. Du warst auch zu oft auf der Powershell Conf EU Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 15. November 2021 Melden Teilen Geschrieben 15. November 2021 vor 13 Minuten schrieb daabm: Du warst auch zu oft auf der Powershell Conf EU Gibt es dafür ein "zu oft"? Hat doch bisher nur 4,5x stattgefunden 1 Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 18. November 2021 Autor Melden Teilen Geschrieben 18. November 2021 Na vielleicht tret ich der Sache ja noch etwas näher, manches ist ja wirklich eleganter als beim guten alten Batch. Bei der Gelegenheit würd ich gern noch eine kleine Frage einflechten. In meinem kleinen InventoryScript habe ich eine Variable defniert, welche sich aus der Systembeschreibung ergibt. Dort steht standardmässig sowas wie Name, Vorname - PC. Zudammen mit anderen definierten Systemvariablen wird dieses dann in eine csv gepackt. Sieht auschnittsweise so aus: $BeschreibungKey = 'HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters' $BeschreibungTest = Test-Path $BeschreibungKey $BeschreibungSrvcomment = (Get-ItemProperty $BeschreibungKey).Srvcomment Write-Verbose "Beschreibung Srvcomment: $BeschreibungSrvcomment" -Verbose $Description = $BeschreibungSrvcomment Am Ende wird halrt eine CSV geschrieben, und zwar derart: #CSV Ausgbe $Ausgabe = [PSCustomObject]@{ . . 'Beschreibung' =$Description; . . } $Ausgabe | Export-Csv -Path $DestinationFolder\Ausgabe.csv -NoTypeInformation Das Problem hierbei ist das Komma in der Beschreibung, leider bekomme ich es nicht hin, dass er mir hier keine zweite Spalte aufmacht, klar wegen dem Komma im csv. Kann ich da irgendwie eine Ausnahme erstellen für diese Variable, oder wäre die einzige Lösung einen anderen delimiter zu nehmen? Leider bin ich bei Google nicht so richtig fündig geworden lg und schönen Abend Stef Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 18. November 2021 Melden Teilen Geschrieben 18. November 2021 Hi, funktionierts mit #CSV Ausgbe $Ausgabe = [PSCustomObject]@{ . . 'Beschreibung' = $(-join ("`'", $Description, "`'")); . . } $Ausgabe | Export-Csv -Path $DestinationFolder\Ausgabe.csv -NoTypeInformation ? Gruß Jan Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. November 2021 Melden Teilen Geschrieben 18. November 2021 vor 2 Stunden schrieb stefan4711: leider bekomme ich es nicht hin, dass er mir hier keine zweite Spalte aufmacht, klar wegen dem Komma im csv. In einem strandard-konformen CSV ist das kein Problem, weil das Komma, welches in der Beschreibung auftaucht zwischen Gänsefüßchen eingeschlossen wird. 1 Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 18. November 2021 Melden Teilen Geschrieben 18. November 2021 vor 8 Minuten schrieb BOfH_666: In einem strandard-konformen CSV ist das kein Problem, weil das Komma, welches in der Beschreibung auftaucht zwischen Gänsefüßchen eingeschlossen wird. ...und PowerShell legt den Standard beim Exportieren sogar so aus, dass *jeder* String in Gänsefüßchen eingeschlossen wird, egal, ob er den Delimiter enthält oder nicht. Beim Importieren werden aber RFC4180-konforme Dateien korrekt importiert. 1 Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 19. November 2021 Autor Melden Teilen Geschrieben 19. November 2021 okidoki, danke, werrde ich morgen gleich mal ausprobieren lg stef Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 19. November 2021 Autor Melden Teilen Geschrieben 19. November 2021 (bearbeitet) So danke erst mal noch, leider scheint es so nicht ganz zu funktionieren, denke habe mich wieder mal falsch ausgedrückt. Die Server Bezeichnung wird immer nach folgendem Muster gebildet: Mustermann, Vorname - PC. Ich habe es jetzt nach deinem Vorschlag so stehen: $BeschreibungKey = 'HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters' $BeschreibungTest = Test-Path $BeschreibungKey $BeschreibungSrvcomment = (Get-ItemProperty $BeschreibungKey).Srvcomment Write-Verbose "Beschreibung Srvcomment: $BeschreibungSrvcomment" -Verbose $Description = $BeschreibungSrvcomment #Ausgabe 'Beschreibung' = $(-join ("`'", $Description, "`'")); Was er nun macht ist folgendes (oben die Spaltennamen): Hostname Beschreibung Seriennummer .... ... .. .... 'Mustermann Vorname - PC' ............ Er macht also 2 Fehler, er teilt den String weiterhin auf eine zweite Spalte auf, in der sonst was ganz anderes stehen soll, es werden zusätzlich noch 2 überflüssige ' erzeugt. Irgendwas scheint an der Syntax noch nicht zu stimmen. Also nochmal, Für dieses Feld soll das , als Delimiter ignoriert werden, weil Komma bedeutet ja neue Spalte. lg Stef bearbeitet 19. November 2021 von stefan4711 Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 19. November 2021 Autor Melden Teilen Geschrieben 19. November 2021 (bearbeitet) ok sorry war mein Fehler, es lag wohl an meiner nächsten csv Spalte 'SMB' =$smbt -replace ".{1}$"; Die Apostrophs hab ich jetzt auch weg, habe einfach das "`-", jeweils gelöscht lg und danke nochmals stef bearbeitet 19. November 2021 von stefan4711 Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 19. November 2021 Autor Melden Teilen Geschrieben 19. November 2021 So eine letzte Frage noch, eigentlich nur noch nen Schönheitsfehler, bin ich leider auch nicht zu fündige geworden, dann bin ich erst mal glücklich. Was ist wenn in diesem Description Feld Umlaute drin stehen, kann man dass irgendwie gerade rücken? lg Stef Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. November 2021 Melden Teilen Geschrieben 19. November 2021 (bearbeitet) vor 2 Minuten schrieb stefan4711: kann man dass irgendwie gerade rücken? Was verstehst Du darunter? Wenn Du damit meinst, ob man die Umlaute gegen die entsprechende Buchstabenkombination ohne Umlaute ersetzen kann .... ja, klar ... geht. bearbeitet 19. November 2021 von BOfH_666 Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 19. November 2021 Autor Melden Teilen Geschrieben 19. November 2021 Nein ich möchte sie darstellen, er zeigt mit statt ä bspw. nur ? an Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. November 2021 Melden Teilen Geschrieben 19. November 2021 Dann versuch mal den Parameter -Encoding UTF8 für deinen CSV Export. Damit sieht es meistens besser aus. .... und dazu bist Du nicht fündig geworden? Wonach hast Du denn da gesucht? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.