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!

Recommended Posts

Posted

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!

Posted (edited)

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
    }
}

 

Edited by MurdocX
  • Like 1
  • Thanks 1
Posted

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...