judgelg
Goto Top

Datensätze aus Excel mit Ordnerinhalt abgleichen und auflisten

Hallo,

ich habe eine Excelliste, wo ungefähr 300 E-Mailadressen drin stehen. Zu diesen E-Mailadressen hatte ich bisher immer die .pem certs aus einem Ordner von hand raus gesucht. Das ist natürlich sehr mühselig.
Gibt es eine Möglichkeit, das man den Ordnerinhalt automatisch durchsuchen kann und sich die Ergebnisse auflisten lassen kann.

Danke für eure Mithilfe.

Mfg

Content-ID: 671108

Url: https://administrator.de/forum/datensaetze-aus-excel-mit-ordnerinhalt-abgleichen-und-auflisten-671108.html

Ausgedruckt am: 12.03.2025 um 04:03 Uhr

151434
151434 03.02.2025 aktualisiert um 15:28:38 Uhr
Goto Top
Beispiel

CSV (D:\mails.csv)
"E-Mail"  
"user1@domain1.de"  
"user2@domain1.de"  
"user3@domain1.de"  
Ordnerinhalt (D:\Certs)
D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem
D:\Certs\user4@domain1.de.pem
D:\Certs\user5@domain1.de.pem

Powershell-Skript

# Ordner mit den Certs
$folder = 'D:\certs'  
# CSV mit Mails
$csv = 'D:\mails.csv'  
# Mails aus CSV holen
$mails = (Import-CSV $csv -Delimiter ";").'E-Mail'  
# nur certs holen die in der CSV stehen
$certfiles = Get-ChildItem -LiteralPath $folder -File -Filter *.pem | where-object {$_.Basename -in $mails}
# files ausgeben
$certfiles

Ergibt die Files

D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem

Fertsch.

Gruß goldcap
Judgelg
Judgelg 04.02.2025 um 07:18:44 Uhr
Goto Top
Alles klar, ich danke dir.
Werde das gleich mal testen.

Mfg
Judgelg
Judgelg 04.02.2025 um 07:45:20 Uhr
Goto Top
Zitat von @151434:

Beispiel

CSV (D:\mails.csv)
"E-Mail"  
"user1@domain1.de"  
"user2@domain1.de"  
"user3@domain1.de"  
Ordnerinhalt (D:\Certs)
D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem
D:\Certs\user4@domain1.de.pem
D:\Certs\user5@domain1.de.pem

Powershell-Skript

# Ordner mit den Certs
$folder = 'D:\certs'  
# CSV mit Mails
$csv = 'D:\mails.csv'  
# Mails aus CSV holen
$mails = (Import-CSV $csv -Delimiter ";").'E-Mail'  
# nur certs holen die in der CSV stehen
$certfiles = Get-ChildItem -LiteralPath $folder -File -Filter *.pem | where-object {$_.Basename -in $mails}
# files ausgeben
$certfiles

Ergibt die Files

D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem

Fertsch.

Gruß goldcap

Hallo, bei mir wirft er leider nichts aus. Er durchläuft das Script, wirft am ende aber nicht aus.
151434
151434 04.02.2025 aktualisiert um 07:53:06 Uhr
Goto Top
Dann stimmt entweder deine CSV nicht mit der oben überein oder die Dateien sind anders benannt.
Bitte prüfen ob die Überschrift in der CSV auch vorhanden ist und ob der Delimiter das Semikolon ist ! Wenn nicht, ergänzen und bei Bedarf Delimiter anpassen und prüfen ob die Überschrift 'E-Mail' lautet , wenn sie anders heißt musst du das im Skript verständlicherweise auch anpassen.

Klappt hier einwandfrei, Fehler in der Anwendung liegt also bei dir.
Judgelg
Judgelg 04.02.2025 um 13:24:13 Uhr
Goto Top
ok, ich prüfe.

Danke