stefanfen
Goto Top

Findstr nur erste Fund

Hallo Leute
Ich habe ein Problem bei dem ich nicht weiterkommen. Ich habe 2 CSV Dateien. Eine in der alle meine Mitgliedernummern (aktive) stehen und eine mit den Mitgliedernummern und weiteren Daten (alledaten).

set "quellordner=C:\club\"  
set "zielordner=C:\club\user\"  
pushd "%quellordner%"  
findstr /ig:"aktive.csv" "alledaten.csv" >"%Zielordner%\fertig.csv"  

mit dem batch bekomme ich alle Mitglieder in eine neue csv die noch aktiv sind. Leider sind in der alledaten.csv die Mitglieder aber teilweise mehrfach drin. Wie kann ich mit findstr mir nur den ersten Fund einer Mitgliedsnummer in die neue Datei schreiben lassen?

Content-Key: 487545

Url: https://administrator.de/contentid/487545

Printed on: April 26, 2024 at 13:04 o'clock

Member: Kraemer
Kraemer Aug 22, 2019 at 13:02:28 (UTC)
Goto Top
Member: stefanfen
stefanfen Aug 22, 2019 at 14:48:15 (UTC)
Goto Top
Den Beitrag hatte ich schon gesehen. Ich habe es auch mit einem einfachen /ic:"einMitgliedsnummer" hinbekommen aber nicht mit der kompletten CSV Liste und nicht mit einer umleitung in eine neue Datei.
Member: Kraemer
Kraemer Aug 22, 2019 at 14:53:17 (UTC)
Goto Top
Zitat von @stefanfen:

Den Beitrag hatte ich schon gesehen.
ich habe keine Lust auf Ratespielchen*. Ich bin hier raus.
Mitglied: 77559
77559 Aug 22, 2019 at 18:15:08 (UTC)
Goto Top
Moin moin,

Mit PowerShell ist das einfacher und genereller lösbar.

Aus diesen Anfangsdaten (nur die Spalte MitgliedsNummer muss übereinstimmen)

C:\Club\alledaten.csv   | C:\Club\aktive.csv
------------------------+-------------------
MitgliedsNummer,Daten   | MitgliedsNummer
1,Daten1                | 1
2,Daten2                |
2,Daten2-2              |
3,Daten3                | 3
3,Daten3-2              |
4,Daten4                |
4,Daten4-2              |
5,Daten5                | 5
5,Daten5-2              |
6,Daten6                |
6,Daten6-2              |
7,Daten7                | 7
7,Daten7-2              |

Erzeugt dieses Script:

## Q:\Test\2019\08\22\AD_487545.ps1
$SrcDir = 'C:\Club\'        
$DstDir = 'C:\Club\User\'   
MD $DstDir -EA 0| Out-Null

$UserAct = Import-Csv -Path (Join-Path $SrcDir 'aktive.csv')  
$UserAll = Import-Csv -Path (Join-Path $SrcDir 'alledaten.csv') |  
    Group-Object MitgliedsNummer | ForEach-Object{$_.Group|Select -First 1}

Compare-Object -Ref $UserAll -Diff $UserAct -Property MitgliedsNummer `
               -PassThru -IncludeEqual -ExcludeDifferent |
    Select-Object * -Exclude SideIndicator |
    Export-Csv -Path (Join-Path $DstDir 'fertig.csv') -NoTypeInformation  

Diese Ausgabedatei:

> Get-Content C:\club\User\fertig.csv
"MitgliedsNummer","Daten"
"1","Daten1"
"3","Daten3"
"5","Daten5"
"7","Daten7"
Member: stefanfen
stefanfen Aug 23, 2019 at 11:07:03 (UTC)
Goto Top
Ich habe den Beitrag dort gelesen und es ja auch so hinbekommen. Das Problem dabei ist einfach das aus meiner "aktive) Liste immer nur die erste Mitgliedsnummer genommen wird. Ich habe aber ja etliche in der Liste und daher funktioniert es nicht.

Wenn du die Lösung dafür kennst wäre ich dir sehr dankbar für deine Mithilfe
Member: stefanfen
stefanfen Aug 23, 2019 at 11:07:51 (UTC)
Goto Top
Klappt supoer aber bei mir wird das die erste Zeile der Aktive Liste verwendet. Dana ist ende.
Mitglied: 77559
77559 Aug 23, 2019 at 19:18:05 (UTC)
Goto Top
Zitat von @stefanfen:

Klappt supoer aber bei mir wird das die erste Zeile der Aktive Liste verwendet. Dana ist ende.

In der Kürze und ohne Details verstehe ich nicht was du meinst.

Gruß
LotPings
Member: stefanfen
stefanfen Aug 26, 2019 at 17:01:57 (UTC)
Goto Top
Sry erstmal das ich erst jetzt antworte und vielen Dank für deine Hilfe.

In der einen CSV steht nur die Kundennummer:
34343
34341
34144
etc

in der zweiten CSV stehen
Name;Adresse;PLZ;Ort;Jahr;Kundennummer;Geburtsdatum;Farbe;Punkte

Mit deinem Script bekomme ich nun "nur" einfach die erste Zeile ausgegeben. Was ich brauche ist zu jeder Mitgliedsnummer die erste Zeile die in der Liste vorkommt.
Mitglied: 77559
77559 Aug 26, 2019 at 21:02:42 (UTC)
Goto Top
Moin moin,

langsam kann ich Kraemer verstehen,

ich liefere ein detailliertes Sript basierend auf deinen Daten und
zurück kommt von dir eine sehr kurze Antwort mit anderen Details.

Aus Mitgliedernummer wurde eine Kundennummer von der ich nicht weiß wie du das umgesetzt hast,
denn beim Umsetzen hapert es ja offensichtlich.

Gruß
LotPings
Member: Kraemer
Kraemer Aug 27, 2019 at 06:31:00 (UTC)
Goto Top
Zitat von @77559:
langsam kann ich Kraemer verstehen,

🍿