
Я правильно написал следующую команду PowerShell для обхода каждой папки и подпапки каталога и отображения содержимого каждой такой папки:
Get-ChildItem -Path "C:\whiskey\Tango\Charlie" –Recurse
Я также написал скрипт PowerShell, который работает корректно и может извлекать текст из каждого PDF-файла в одной папке.
cd "C:\whiskey"
$FILES= ls *.pdf
foreach ($f in $FILES) {
& "C:\Program Files\xpdf-tools-win-4.02\bin32\pdftotext.exe" -enc UTF-8 "$f"
}
Я пытаюсь объединить оба скрипта, чтобы обойти все папки и подпапки и выполнить программу pdftotext. И поэтому я написал:
$files=Get-ChildItem -Path "C:\whiskey\Tango\Charlie" –Recurse
foreach ($f in $files){
& "C:\Program Files\xpdf-tools-win-4.02\bin32\pdftotext.exe" -enc UTF-8 "$f"
}
; что неверно. Я получаю следующую ошибку:pdftotext.exe : Ошибка ввода-вывода: Не удалось открыть файл. Обратите внимание, что ни один из файлов PDF не защищен.
Вопрос: Как исправить эту ошибку?
решение1
Это НЕ ответ, а расширенный комментарий после @FrankThomas. Похоже, следующий скрипт "работает"
$FOLDERS=@(Get-ChildItem -Path "C:\whiskey\Tango\Charlie" –Recurse)
$FOLDERS #print contents of array
foreach ($f in $FOLDERS) {
& "C:\Program Files\xpdf-tools-win-4.02\bin32\pdftotext.exe" -enc UTF-8 $f.FullName
}
Действительно, он проходит через каждую папку и подпапку и запускает программу pdftotext и таким образом правильно извлекает содержимое файла pdf в текстовый файл. Однако у меня все еще есть сообщение об ошибке: pdftotext.exe : Ошибка ввода-вывода: Не удалось открыть файл "C:\whiskey\Tango\Charlie". Я подозреваю, что имя каждой папки было сохранено в массиве $FOLDERS. Впоследствии PowerShell передает имя папки в pdftotext; что приведет к ошибке, так как не может найти расширение .pdf.
Ниже приведен правильный сценарий PS:
$FOLDERS=@(Get-ChildItem -Path "C:\whiskey\Tango\Charlie" –Recurse -Filter *.pdf)
$FOLDERS #print contents of every folder
foreach ($f in $FOLDERS) {
& "C:\Program Files\xpdf-tools-win-4.02\bin32\pdftotext.exe" -enc UTF-8 $f.FullName
}
Мне нужно отфильтровать только файлы PDF.