mero59

Ordner auslesen und Ausgabe spliten

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){

$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?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 215775

Url: https://administrator.de/forum/ordner-auslesen-und-ausgabe-spliten-215775.html

Ausgedruckt am: 06.06.2025 um 23:06 Uhr

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

$files = Get-ChildItem "C:\Daten" # Ordner auslesen  
foreach ($file in $Files)
{
    $splitfilename = $File.name.split('&')  
    $partnerName = $splitfilename
    $partnerFound = $false
    foreach($Objekt in Import-CSV $Partner_Email_File)
    {
        $Objekt.Partner
        $Objekt.Email_Adr
        if ($Objekt.Email_Adr -eq $partnerName ){
            $Script:Partner_Email_File_Name = $Objekt.Partner
            $Script:Partner_Email_File_Adr = $Objekt.Email_adr
            Write-Log $Partner_Email_File_Adr
            $partnerFound = $true
            break
         }
    }
    
    if (!$partnerFound)
    {
         Write-log "Partner: '$partnerName' nicht vorhanden."  
    }
    
}
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.
mero59
mero59 31.08.2013 um 19:33:26 Uhr
Goto Top
Hi Uwe,
perfekt das hat geklappt, tausend Dank

Lieben Gruß

Heiko