Ja_Nosch 3 Geschrieben 3. Januar 2021 Melden Teilen Geschrieben 3. Januar 2021 Hallo zusammen, ich habe die Daten einer Festplatte aus einem Notebook gerade noch retten können, d.h. alle Daten davon auf ein anderes Laufwerk kopieren können. Leider sind manche Dateien nicht mehr zu öffnen, d.h. entweder die Bilddateien sind in der Vorschau halb grau (öffnen lassen sie sich nicht) oder PDF-Dateien gehen nicht auf, weil die Datei beschädigt ist. Kennt ihr ein Tool oder habt ihr eine Idee, wie ich automatisiert alle nun geretteten Dateien daraufhin prüfen lassen kann, ob sie noch auf gehen oder defekt sind? Habe bislang leider nichts gefunden. Vielen Dank! Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 4. Januar 2021 Melden Teilen Geschrieben 4. Januar 2021 (bearbeitet) Hallo Ja_Nosch, generell kann ein inhaltlicher "defekt" immer nur gegen eine inhaltliche richtige Referenz geprüft werden. Ich hatte tatsächlich dazu mal ein "low-level" Skript geschrieben. Das Skript prüft nur ob die PDF gestartet werden kann. Falls nicht, dann wird sie als defekt gewertet und verschoben. Dieses Skript ist ohne Garantie auf Richtigkeit: #requires -Version 3.0 # # Das Skript verschiebt Ordner und testet gefundene PDFs auf ihre Funktion. Defekte werden in einen separaten # Ordner verschoben. Das Skript baut auf der PDFInfo.exe von XpdfReader auf. # PDFInfo.exe Download: https://www.xpdfreader.com/download.html # # Jan Weis - it-explorations.de - 12.11.2019 # # # Initialisiere und bereite die Umgebung vor # [string]$sDefectFilesPath = "$env:USERPROFILE\Desktop\error" [string]$sLocationToAnalysePath = "$env:USERPROFILE\Downloads" [string]$sPdfInfoToolPath = "$env:USERPROFILE\Downloads\xpdf-tools-win-4.02\xpdf-tools-win-4.02\bin64\pdfinfo.exe" if ((Test-Path -Path $sDefectFilesPath) -eq $false) { New-Item -ItemType Directory -Force -Path $sDefectFilesPath } # # Der erste Teil des Codes sucht nach den Ordnern mit META-INF oder OEPS im Namen und verschiebt sie in den CutFolders Ordner # $oFoundFolderList = Get-ChildItem -Path $sLocationToAnalysePath -Recurse -Directory foreach ($oFolderItem in $oFoundFolderList) { If(($oFolderItem.Name -like '*META-INF*') -or ($oFolderItem.Name -like '*OEPS*')) { Move-Item -Path $oFolderItem.FullName -Destination $sDefectFilesPath } } # # Dieser Teil überprüft die verbliebenen PDFs auf Funktion und entfernt die defekten # $oFoundFileList = Get-ChildItem -Path $sLocationToAnalysePath -Filter *.pdf -Recurse [int]$i = 0 foreach ($oFileItem in $oFoundFileList) { $i++ Write-Progress -Activity 'Prüfe gefundene PDF-Dateien' -Status "$i von $($oFoundFileList.Count)" [string]$sFileItemPath = $oFileItem.FullName $saRetValue = & $sPdfInfoToolPath $sFileItemPath 2>&1 if ($saRetValue | Select-String -Pattern Error) { Move-Item -Path $sFileItemPath -Destination $sDefectFilesPath } } bearbeitet 4. Januar 2021 von MurdocX 1 1 Zitieren Link zu diesem Kommentar
Ja_Nosch 3 Geschrieben 5. Januar 2021 Autor Melden Teilen Geschrieben 5. Januar 2021 Wow, vielen Dank. Was war bei Dir der Grund für dieses Skript? Auch so wie bei mir Daten von einer ursprünglich defekten Festplatte? Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 6. Januar 2021 Melden Teilen Geschrieben 6. Januar 2021 Gerne. Ich hoffe es bringt dich etwas weiter bei deiner Herausforderung. Warum ich das Skript geschrieben hab, kann ich nicht mehr genau sagen. Im Hinterkopf hatte ich noch das ich das Problem mal zu lösen hatte. In meiner Galerie bin ich dann fündig geworden 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.