HappyLittleTree
Cadet 1st Year
- Registriert
- Mai 2004
- Beiträge
- 11
Hallo, ich möchte in 8 Ordnern, die jeweils in demselben Verzeichnis liegen PDF- und XML-Dateien miteinander vergleichen. Wenn die Namen der Dateien in dem Ordner übereinstimmen, sollen diese in ein Zielverzeichnis kopiert und anschließend von dem kopierten Ordner gelöscht werden. Wenn das Verzeichnis leer ist, soll nichts passieren.
Mein Problem ist, dass sich die Dateien in den Ordern momentan auch untereinander vergleichen. Ich möchte aber nur in einem Ordner die Dateien miteinander vergleichen, nicht in allen. Sind die Dateien in einem Ordner alle miteinander verglichen worden, soll das gleiche bei den restlichen Ordnern geschehen. Wenn es zu einer Datei keine Übereinstimmung im Namen, zischen PDF und XML Datei gibt, oder sonstige Fehler auftreten soll eine E-Mail verschickt und ein Logeintrag erstellt werden. In diesem Schritt darf die einzelne Datei dann nicht kopiert werden. Leider werden Dateien zu denen es keine Übereinstimmung gibt, aber trotzdem mit kopiert.
Hier mein bisheriger Code:
Mein Problem ist, dass sich die Dateien in den Ordern momentan auch untereinander vergleichen. Ich möchte aber nur in einem Ordner die Dateien miteinander vergleichen, nicht in allen. Sind die Dateien in einem Ordner alle miteinander verglichen worden, soll das gleiche bei den restlichen Ordnern geschehen. Wenn es zu einer Datei keine Übereinstimmung im Namen, zischen PDF und XML Datei gibt, oder sonstige Fehler auftreten soll eine E-Mail verschickt und ein Logeintrag erstellt werden. In diesem Schritt darf die einzelne Datei dann nicht kopiert werden. Leider werden Dateien zu denen es keine Übereinstimmung gibt, aber trotzdem mit kopiert.
Hier mein bisheriger Code:
PowerShell:
$Verzeichnis = @(Get-ChildItem D:\power\ -directory).FullName
$PDF = (Get-Childitem $Verzeichnis –File -Include *.pdf -Recurse)
$XML = (Get-Childitem $Verzeichnis –File -Include *.xml -Recurse)
$Value = $True #E-Mail schicken
$counter = 0
$Pfad = ""
$PfadXML = ""
$PfadPDF = ""
do{
for($i=0; $i -lt $PDF.length; $i++){
for($a=0; $a –lt $XML.length; $a++){
if($XML[$a] -eq $PDF[$i] -AND (get-childitem $Verzeichnis[$counter]).count -ne 0){ #if($XML[$a].BaseName -contains $PDF[$i].BaseName){
Write-Host $XML[$a] "gleich" $PDF[$i]
$PfadPDF = $Verzeichnis[$counter]+"\"+$PDF[$i]
$PfadXML = $Verzeichnis[$counter]+"\"+$XML[$a]
#$hell = Get-Item -Path $Verzeichnis[$counter]+"\"+$XML[$i]
Move-Item -path "$PfadXML" -Destination "D:/power/z1/" -verbose
Move-Item -path "$PfadPDF" -Destination "D:/power/z1/" -verbose
}elseif((get-childitem $Verzeichnis[$counter]).count -eq 0){
write-host $Verzeichnis[$counter] "Verzeichnis leer"
break
}else{
Write-host $XML[$a] "nicht gleich" $PDF[$i]}
}
}
$counter++
}while($counter -le 8)}