Используя приведенный ниже скрипт powershell, он преобразовал pdf в текст, который хранится в temp.txt
файле, который затем используется для сравнения с именем файла. Имя файла разделяется с помощью разделителя, а затем указывается, какой из разделений использовать для сравнения. Это работает для каждого файла в каталоге, где файл заканчивается .pdf. Это предоставит список error.log
файлов, которые не совпадают.
Нам пришлось использовать сторонний .exe для преобразования PDF в текст.
$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"