gelöst Ordner auslesen und Ausgabe spliten

Mitglied: mero59

mero59 (Level 1)

31.08.2013, aktualisiert 14:38 Uhr, 1496 Aufrufe, 2 Kommentare

Erst mal ein freundliches Hallo an alle,
ich bin neu hier und hoffe das ich hier meine Kenntnisse vertiefen kann bzw. mit meinen Kenntnisse den ein oder andern auch mal helfen kann.
Zu meinen Problem:
Mein Outlook 2010 speichert Mails mit Attachments in einen Ordner, dabei wird der Filename aus Sender-Email Adr., Subject und einen Date getrenntdurch & generiert.
Beispiel:
Sender ist :Max.Mustermann@musterhausen.com
Subject ist : Tagesmeldung
Dateiname wird dann: Max.Mustermann@musterhausen.com&Tagesmeldung&31082013
Nun möchte ich den Ordner mit den Dateien auslesen
- mir den String Max.Mustermann@musterhausen.com rausholen
- und diesen String prüfen ob dieser in einer Partnerdatei vorhanden ist
- wenn ja dann die Datei weiter verarbeiten
- wenn nein soll eine Email generiert werden mit Hinweis auf z.B Partner nicht vorhanden.

Komme jedoch mit meinen Lösungansatz da irgendwie nicht weiter

Code:
  1. --------------------------------------------------------------------------------
$files = Get-ChildItem "C:\Daten" # Ordner auslesen
foreach( $file in $Files )
{
if( $file)
{
$splitfilename = $File.name.split('&')

foreach($Objekt in Import-CSV $Partner_Email_File)
{$Objekt.Partner
$Objekt.Email_Adr
if ($Objekt.Email_Adr -eq $splitfilename[0]){

$Script:Partner_Email_File_Name = $Objekt.Partner
$Script:Partner_Email_File_Adr = $Objekt.Email_adr
Write-Log $Partner_Email_File_Adr
}
else
{
Write-log "partner nicht vorhanden"
}
}
Next_Step $Script:Partner_Email_File_Name
}
}



Diese Methode läuft zwar ohne Fehler durch jedoch das Ergebnis stimmt nicht:
Als Beispiel:
Es liegen 2 Dateien von bekannten Sender vor, die Ausgabe der Log zeigt mir dann 2 gefundene Partner jedoch auch 2 Einträge Partner nicht vorhanden
wo liegt da mein Gedankenfehler?


Mitglied: colinardo
31.08.2013, aktualisiert um 19:14 Uhr
Hallo mero59, WIllkommen im Forum !
probiers mal so:

01.
$files = Get-ChildItem "C:\Daten" # Ordner auslesen
02.
foreach ($file in $Files)
03.
{
04.
    $splitfilename = $File.name.split('&')
05.
    $partnerName = $splitfilename[0]
06.
    $partnerFound = $false
07.
    foreach($Objekt in Import-CSV $Partner_Email_File)
08.
    {
09.
        $Objekt.Partner
10.
        $Objekt.Email_Adr
11.
        if ($Objekt.Email_Adr -eq $partnerName ){
12.
            $Script:Partner_Email_File_Name = $Objekt.Partner
13.
            $Script:Partner_Email_File_Adr = $Objekt.Email_adr
14.
            Write-Log $Partner_Email_File_Adr
15.
            $partnerFound = $true
16.
            break
17.
         }
18.
    }
19.
    
20.
    if (!$partnerFound)
21.
    {
22.
         Write-log "Partner: '$partnerName' nicht vorhanden."
23.
    }
24.
    
25.
}
Das Problem bei deinem Code war das er bei jedem Eintrag in der CSV-Datei auf die der Name der Datei nicht passt, ausgegeben wird "Partner nicht gefunden". Bei der meiner Version beendet das Script die Schleife vorzeitig wenn der Partner gefunden worden ist, und die Ausgabe das ein Partner nicht vorhanden ist wird nachdem die Schleife alle Zeilen durchlaufen hat geprüft.

Grüße Uwe

p.s. Für die Zunkunft poste Code bitte mit Tags, damit uns keine Sonderzeichen verloren gehen. Merci.
Mitglied: mero59
31.08.2013 um 19:33 Uhr
Hi Uwe,
perfekt das hat geklappt, tausend Dank

Lieben Gruß

Heiko
Titel: Ordner auslesen und Ausgabe spliten
Content-ID: 215775
Art des Inhalts: Frage
Ausgedruckt am: 21.09.2019 um 06:56:56 Uhr
URL: https://administrator.de/contentid/215775