Export Artikel ich verstehe es nicht
Hallo zusammen,
ich stehe mal wieder auf dem Schlauch.
Ich muss aus einem Textfile die doppelt vorhandenen Artikel anhand der "Angelegt am" Spalte vergleichen
und den älteren Artikel in ein neues File speichern. Hier wird dann zusätzlich "Gesperrt" auf TRUE gesetzt.
Das ganze funktioniert auch schon fast, allerdings werden mir auch Artikel exportiert, die eine unterschiedliche
Bezeichnung haben. z.B. HP2470991 und HP2470991LA
Das Textfile ist wie folgt aufgebaut:
Artikelnummer;Artikelindex;Gesperrt;Angelegt am
HP2470991;UNBEKANNT;False;01.02.2023 05:00:14
HP2470991LA;UNBEKANNT;False;12.05.2023 05:00:12
das Exportfile sieht dann so aus:
Artikelnummer;Artikelindex;Gesperrt;Angelegt am
HP2470991;UNBEKANNT;True;01.02.2023 05:00:14
mein Script sieht bisher so aus:
Kann mir das jemand erklären? Ich verstehe es nicht.
Grüße
ich stehe mal wieder auf dem Schlauch.
Ich muss aus einem Textfile die doppelt vorhandenen Artikel anhand der "Angelegt am" Spalte vergleichen
und den älteren Artikel in ein neues File speichern. Hier wird dann zusätzlich "Gesperrt" auf TRUE gesetzt.
Das ganze funktioniert auch schon fast, allerdings werden mir auch Artikel exportiert, die eine unterschiedliche
Bezeichnung haben. z.B. HP2470991 und HP2470991LA
Das Textfile ist wie folgt aufgebaut:
Artikelnummer;Artikelindex;Gesperrt;Angelegt am
HP2470991;UNBEKANNT;False;01.02.2023 05:00:14
HP2470991LA;UNBEKANNT;False;12.05.2023 05:00:12
das Exportfile sieht dann so aus:
Artikelnummer;Artikelindex;Gesperrt;Angelegt am
HP2470991;UNBEKANNT;True;01.02.2023 05:00:14
mein Script sieht bisher so aus:
# Read the input file
$articles = Import-Csv -Delimiter ';' -Path D:\temp\test-artikel.txt
# Find the oldest article
$oldestArticle = $articles | Sort-Object 'Angelegt am' | Select-Object -First 1
# Set the Gesperrt column to True
$oldestArticle.Gesperrt = 'True'
# Write the result to a new file
$oldestArticle | ConvertTo-Csv -Delimiter ';' -NoTypeInformation | ForEach-Object { $_ -replace '"' } | Set-Content 'D:\temp\wtf.txt' -Encoding UTF8
Kann mir das jemand erklären? Ich verstehe es nicht.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8030825055
Url: https://administrator.de/contentid/8030825055
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
allerdings werden mir auch Artikel exportiert, die eine unterschiedliche Bezeichnung haben
Du gruppierst ja noch nicht mal doppelt Einträge raus ...# CSV importieren
$csv = Import-Csv -Delimiter ';' -Path D:\temp\test-artikel.txt
# csv nach "Angelegt am" Datum aufsteigend sortieren und dann anhand der Artikelnummer gruppieren und nur Artikel nehmen von denen es mindestens 2 gibt
($csv | sort-object {[datetime]::Parse($_.'Angelegt am')} | group-object Artikelnummer | ? Count -gt 1 | %{
# vom ältesten die Gesperrt Eigenschaft festlegen
$_.Group[0].Gesperrt = "True"
# und dann den Artikel ausgeben
$_.Group[0]
} | ConvertTo-csv -Delimiter ";" -NoTypeInformation) -replace '"' | Set-Content 'D:\temp\wtf.txt' -Encoding UTF8
Gruß siddius