Multi CSV File Import Powershell

Mitglied: denethor34

denethor34 (Level 1) - Jetzt verbinden

19.04.2021 um 00:50 Uhr, 521 Aufrufe, 13 Kommentare, 4 Danke

Hallo Zusammen,

ich komme gerade nicht weiter in meinen Powershell script

Ich möchte aus einer CSV Datei, in Powershell daten importieren.

Es sollen daten aus einer Tabelle importiert werden die nur ein gewissen wert entsprechen.

bsp:
Kunde;Nummer;Beschreibung
MusterCorp01;87654312;MusterCopretc01
MusterCorp02;27384628;MusterCorpetc02
MusterCorp03;23124238;MusterCorpetc03

So ist die CSV Datei aufgebaut.

Ich möchte aber nur den Kunde MusterCorp02 Filter, und dort dann nur die Nummer extrahieren.

Diese möchte ich dann weiter verwenden um mehrere CSV Files nach diese Nummer zu durchsuchen, und das Ergebnisse in Excel ausgeben.

Das ist der Grobe plan, ich scheitere aber schon am Anfang.

Wie ich die daten einlese in Powershell generell ist mir bekannt.


Dann sind die Daten wie oben in der Powershell gespeichert. Oder ist dieser Anfang schon falsch ?

dann habe ich das noch versucht.


Dann gibt er mir aber alle nummern aller Kunden aus, und nicht die eine die ich möchte.

Vielleicht hat jemand eine Idee

Gruß
Mitglied: TK1987
19.04.2021, aktualisiert um 08:12 Uhr
Moin,

Zitat von @denethor34:
So ist die CSV Datei aufgebaut.
Wie ich die daten einlese in Powershell generell ist mir bekannt.


Dann sind die Daten wie oben in der Powershell gespeichert. Oder ist dieser Anfang schon falsch ?
Fast. Du hast vergessen, dass Semikolon als Trennzeichen festzulegen

richtig wäre es so:

besser wäre in diesem Fall allerdings, deine Liste vorher mit Where-Object zu prüfen.
So durchlaufen deine anderen Einträge erst gar nicht mehr die Foreach-Schleife.

Gruß Thomas
Bitte warten ..
Mitglied: GarfieldBonn
19.04.2021, aktualisiert um 08:51 Uhr

Edit:
Da war Thomas schneller.
Gibt es mehr als einen Treffer muss der write-Befehl bei mir auch in eine Schleife ;) oder so als Out-GridView

Bitte warten ..
Mitglied: denethor34
19.04.2021 um 09:06 Uhr
Vielen Dank für die Rückmeldung.

Das hat nun soweit auch funktioniert mit beiden Ideen.

Nun ist noch die Frage wie ich die ausgelesenen Daten verwenden kann um mehrer CSV Files nach dieser Nummer zu durchsuchen.
Die CSV Files sind im Gleichen Schema aufgebaut.

ich dachte in die Richtung


Gruß
Bitte warten ..
Mitglied: TK1987
19.04.2021, aktualisiert um 09:52 Uhr
Da würde ich gleich mit Select-String ran gehen.

Bitte warten ..
Mitglied: GarfieldBonn
19.04.2021, aktualisiert um 09:29 Uhr

Bitte warten ..
Mitglied: denethor34
19.04.2021 um 16:17 Uhr
Hallo Zusammen,

danke für die Rückmeldung.

Ich habe mir mal eine CSV Datei erstellt mit folgenden Inhalt.
Diese sind wiederum 4 mal erstellt mir unterschiedlichen Kosten



Ergebnis wäre


Was müsste ich nun machen, wenn ich MusterCorp03 mit zusätzlich in der Liste haben möchte ?
Die Anpassungen am Code in mit MusterCorp03 funktioniert nicht


Gruß
Bitte warten ..
Mitglied: TK1987
19.04.2021, aktualisiert um 16:28 Uhr

Bitte warten ..
Mitglied: GarfieldBonn
19.04.2021 um 18:28 Uhr

Bitte warten ..
Mitglied: denethor34
19.04.2021 um 21:42 Uhr
Puh, danke für die Scripte,
kannst du mir sagen wie dieser String funktioniert Select-String '^"?MusterCorp0[23]"?,' "C:\work\Files\*.csv"
Was bedeuten die ^ und ? in der Zeile, wie auch die [23] ? der Rest ist mir soweit klar.

Script funktioniert soweit auch sehr gut, würde aber auch gerne verstehen was ich da ausführe.

Unter get-help select-string in der help finde ich nicht wirklich was dazu

Gruß
Bitte warten ..
Mitglied: denethor34
19.04.2021 um 21:43 Uhr
Danke, der Script, funktioniert super danke.

Nun muss ich noch schauen das ich das Ergebnis wenn möglich in excel übergeben kann, für die ausrechnung, wenn jemand dazu ein tip hat, gerne her damit.
Bitte warten ..
Mitglied: TK1987
19.04.2021, aktualisiert um 23:31 Uhr
Zitat von @denethor34:
kannst du mir sagen wie dieser String funktioniert
Das ist ein Regex-String.
Was bedeuten die ^ und ? in der Zeile, wie auch die [23] ? der Rest ist mir soweit klar.
  • ^ Bedeutet "Am Zeilenanfang"
  • ? Bedeutet, das Zeichen vor dem Fragezeichen kommt 0 oder 1 mal vor. Könnte man auch weglassen, wenn du in deiner CSV-Datei immer double quotes als Feldbegrenzer benutzen würdest. In deinem Eingangspost hattest du allerdings eine CSV-Datei ohne double quotes gepostet.
  • [23] ist eine Aufzählung von erlaubten Zeichen, hier also entweder 2 oder 3.

Um das noch besser zu verstehen:
Regex Tutorial
Regex Legende

EDIT:
Nun muss ich noch schauen das ich das Ergebnis wenn möglich in excel übergeben kann, für die ausrechnung, wenn jemand dazu ein tip hat, gerne her damit.
Ganz übersehen.
Ich nehme an, du willst auch die Excel-Formel mit Powershell einfügen? Solange du beim CSV-Format bleibst:
Bei Excel ist übrigens, abweichend von @GarfieldBonn's Beitrag, zwingend Semikolon als Trennzeichen zu verwenden. Andernfalls hängen die gesamten Zeilen zusammen und müssen mit Excel erst manuell nachträglich getrennt werden.
Bitte warten ..
Mitglied: GarfieldBonn
19.04.2021 um 22:40 Uhr
Nun muss ich noch schauen das ich das Ergebnis wenn möglich in excel übergeben kann, für die ausrechnung, wenn jemand dazu ein tip hat, gerne her damit.


Bitte warten ..
Mitglied: denethor34
21.04.2021 um 10:15 Uhr
Super, soweit habe ich es verstanden und es funktioniert auch soweit ganz gut.
Danke für die unterstützung.

Gibt es auch eine möglichkeit zu sagen, das ich in der Sucher nach dem Kunde, auswählen kann aus einer liste ?

Sprich ich ersetze die "Select-String '^"?MusterCorp0[23]"?," mit einer Variable die ich in ein Fester auswählen kann ?
Wie z.b. promt etc.

oder ist sowas im Powershell festgelegt.
Ich dachte dort an der variable "ogv"

Ich würde das so einfach wie möglich umsetzen, das meine Kollegen nur auswählen müssen, welchen kunden Sie auslesen wollen.



Gruß
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Aqui - Wir möchten den Hasen zurück
NixVerstehenVor 21 StundenAllgemeinOff Topic34 Kommentare

Lieber aqui, ich finde es sehr sehr schade, das du dich hier so überraschend abgemeldet hast. Ich habe auch von dir sehr viel gelernt ...

Netzwerke
Erfahrungen mit HPE Aruba Switches (Aruba OS)
sixofeightVor 1 TagAllgemeinNetzwerke13 Kommentare

Holla zusammen, Wer von euch setzt Aruba Switches (Aruba OS, ehemals HP ProCurve) ein und wie sind eure Erfahrungen bzw. wie zufrieden seid ihr ...

Webentwicklung
Webdesigner ist verschwunden
Janno100Vor 1 TagFrageWebentwicklung4 Kommentare

Hallo zusammen Kunde hat einen Webdesigner der die Domain des Kunden vor einigen Jahren einfach unter seinen eigenen Name weiter geführt hat. Diese haben ...

Exchange Server
Exchange weist Mails ohne Log Eintrag ab
Mr.RobotVor 12 StundenFrageExchange Server16 Kommentare

Guten Morgen, wir haben seit letzter Woche ein ganz spannendes "Problem" oder sollte ich eher Phänomen sagen? Wir haben eine Tochtergesellschaft die allerdings IT-Technisch ...

Windows Server
Server clonen
oGutITVor 1 TagFrageWindows Server5 Kommentare

Hallo ich habe einen alten HP Server Gen8 und möchte diese auf einen HP Microserver Gen8 klonen. Auf dem HP Server ist 2W12KR2 am ...

Windows 10
Was ist zu wenig
ukulele-7Vor 7 StundenFrageWindows 1013 Kommentare

Hallo, ich suche nach einer Quelle um Windows 10 Pro OEM Lizenzen zu beziehen, gerne auch erstmal ein paar als Testkauf. Nun ist das ...

Netzwerke
2 fritzen mit unterschiedlichen subnetzen einrichten
gelöst alpi972Vor 1 TagFrageNetzwerke7 Kommentare

Hallo, hoffe ich habs unters richtige thema gesetzt, ich habe 2 fritzboxen (eine 7490 als DSL Modem und eine 7430 als Brige), und will ...

Router & Routing
Windows Netzwerklaufwerke durch kaskadiertes Netzwerk nicht ansprechbar
TomAustriaVor 1 TagFrageRouter & Routing5 Kommentare

Hallo, wir hatten bisher nur ein "einfaches" Netzwerk und möchten dieses nun in getrennte Netzwerksegmente aufteilen: Das Netz 192.168.2.x haben wir beim AX1500 an ...