Jump to content

CSV doppelte Zeilen löschen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

 

 

 

 

 

 

 

Link zu diesem Kommentar
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.

Link zu diesem Kommentar

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 von stefan4711
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...