Unter Verwendung des folgenden Powershell-Skripts wurde das PDF-Dokument in Text umgewandelt, der in einer temp.txt
Datei gespeichert wird, die dann zum Vergleich mit dem Dateinamen verwendet wird. Der Dateiname wird mithilfe eines Trennzeichens aufgeteilt und dann mitzuteilen, welche der Splits zum Vergleich verwendet werden sollen. Dies wird für jede Datei in dem Verzeichnis ausgeführt, in dem die Datei mit .pdf endet. Es würde eine Liste error.log
von Dateien bereitstellen, die nicht übereinstimmen.
Wir mussten eine .exe-Datei eines Drittanbieters verwenden, um PDF in Text umzuwandeln.
$path = "C:\brokenPDFs\" $output = $path + "\output.log" $errorpath = $path + "\error.log" "Start:" | Out-File $output "Start:" | Out-File $errorpath Clear-Content $output Clear-Content $errorpath $exe = $path + "pdftotext.exe" $errorcount = 0 $files = Get-ChildItem $path *.pdf Foreach ($currentfile In $files) { $filename=$currentfile.Name $splitname = $filename.split("^") $currentUR = $splitname[0] #write-host $currentfile.Name &$exe $currentfile.FullName $path\temp.txt $result = select-string -Path $path\temp.txt -Pattern $currentUR -Quiet If ($result -eq $true) { $match = $currentfile.FullName "Match on string : $currentUR in file : $match" | Out-File $output -Append } If ($result -eq $false) { $match = $currentfile.FullName "String not found: $currentUR missing from file : $match" | Out-File $errorpath -Append write-host "ERROR: $currentfile missing $currentUR" $errorcount++ } $result = $null } write-host "Total Errors: $errorcount"