bouncer86 5 Geschrieben 25. Juli 2014 Melden Teilen Geschrieben 25. Juli 2014 Hallo, ich habe eine Textdatei mit dem Inhalt: Kunde1;Email1 Kunde2;Email2 Kunde3;Email3 Ich suche mittels select-string in dieser Textdatei nach dem Kunden: $out = Select-String -Path .\Kunden.txt -SimpleMatch "Kunde" Nun bekomme ich die Zeile zurückgegeben. Doch nun möchte ich an die E-Mail Adresse kommen. Also wollte ich ganz gerne mit der Split Methode arbeiten. Doch da ich keinen String zurück gegeben bekomme, klappt das nicht. Jemand eine Idee wie ich an die Email Adresse komme? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 25. Juli 2014 Melden Teilen Geschrieben 25. Juli 2014 Du kannst die Datei anderst einlesen, dass es einen String gibt oder mit ToString() zu einem String machen. Zitieren Link zu diesem Kommentar
NilsK 2.938 Geschrieben 25. Juli 2014 Melden Teilen Geschrieben 25. Juli 2014 Moin, Ich bin kein PowerShell-Profi, aber da kann man doch sicher eine CSV-Datei als Datenbank ansprechen und dann direkt die Mail-Adresse auslesen, oder? Gruß, Nils Zitieren Link zu diesem Kommentar
carnivore 10 Geschrieben 26. Juli 2014 Melden Teilen Geschrieben 26. Juli 2014 (bearbeitet) Hi$out ist kein String, sondern ein Array aus Strings.Mit $Out | foreach { $_ -split(";") } kannst du die einzelenen Felder des Arrays nacheinander analysieren. Deklariere $out mit $out = @(() sicherheitshalber vorneweg als Array carnivore bearbeitet 26. Juli 2014 von carnivore Zitieren Link zu diesem Kommentar
bouncer86 5 Geschrieben 26. Juli 2014 Autor Melden Teilen Geschrieben 26. Juli 2014 @Nils: Stimmt ne Import-csv gibts auch. Daran hatte ich gar nicht gedacht. Hatte es in der Zwischenzeit mit $out = $out -split(';') Gelöst. Aber verstehen tu ich es nicht. Kann mir da bitte jemand Nachhilfe geben? Interessant vor allem, das Split nicht mit der Autovervollständigung angezeigt wird. Danke euch Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 26. Juli 2014 Melden Teilen Geschrieben 26. Juli 2014 Das würde bei $out.split() angezeigt werden. Was genau verstehst du nicht? Zitieren Link zu diesem Kommentar
bouncer86 5 Geschrieben 27. Juli 2014 Autor Melden Teilen Geschrieben 27. Juli 2014 Weil bei $out.split() bekam ich kein brauchbares Ergebnis zurück. Wobei ich das verstehe, split() ist eine Methode der Klasse Array. Doch das Array mit einem Parameter split auszuführen versteh ich nicht. Also die Syntax. Zitieren Link zu diesem Kommentar
carnivore 10 Geschrieben 27. Juli 2014 Melden Teilen Geschrieben 27. Juli 2014 Konstrukte, wie $out = $out -split(';') funktionieren erst ab Powershell V3.0. Ich empfinde diese Syntax als unlogisch und vermeide sie daher. Zitieren Link zu diesem Kommentar
bouncer86 5 Geschrieben 27. Juli 2014 Autor Melden Teilen Geschrieben 27. Juli 2014 Konstrukte, wie $out = $out -split(';') funktionieren erst ab Powershell V3.0.Ich empfinde diese Syntax als unlogisch und vermeide sie daher. Unlogisch, ja das trifft es ganz gut. Es klappt, aber ich versteh es nicht ;) Hat einer einen passenden technet Artikel zu der Syntax? Zitieren Link zu diesem Kommentar
carnivore 10 Geschrieben 27. Juli 2014 Melden Teilen Geschrieben 27. Juli 2014 http://blogs.msdn.com/b/powershell/archive/2012/06/14/new-v3-language-features.aspx -> Member Enumeration We added this feature to make it easier to deal with commands that return one or many objects. Experienced PowerShell scripters knew they needed to use @() to handle that situation correctly, but we really thought that was less than perfect. 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.