Jump to content

Defekte Dateien finden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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!

Link zu diesem Kommentar

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 von MurdocX
  • Like 1
  • Danke 1
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...