Сколько pdf-файлов содержится в подкаталогах каталога prose

Обновлено: 01.07.2024

Привет, сценарист! Как я могу получить список всех файлов .PDF (только имена файлов; мне не нужен путь к файлу или расширение файла) в папке и ее подпапках, а затем поместить этот список в текстовый файл?

Привет, PS. Знаете, PS, на самом деле это сложный вопрос; гораздо сложнее и сложнее, чем может показаться. Кроме того, сценарист, который ведет эту колонку, находится в отпуске; у него нет времени заниматься такими вещами.

Ну, ладно, технически он не в отпуске; технически он посещает и работает на TechEd 2007. Но давай пс. Сценарист, который ведет эту колонку, находится в Орландо; вы знаете, Мир Диснея, Юниверсал Студиос, Морской Мир. Правда в том, что он ни за что не собирается тратить свое время в Орландо на написание скриптов, которые могут получить список всех PDF-файлов в папке и ее подпапках. Извините, но этого просто не произойдет.

По крайней мере, мы не думали, что это произойдет. Однако по удивительному совпадению в Epcot Center только что открылся совершенно новый аттракцион: Wild Ride доктора Скрипто. И угадайте, что происходит, когда вы едете на этом новом аттракционе? Правильно: вы чувствуете тошноту в животе. Однако вы также получаете скрипт, который может получить список всех PDF-файлов в папке и ее подпапках (это довольно странная поездка):

Мы пытались предупредить вас: это сложная процедура, гораздо более сложная, чем она должна быть. Это связано с тем, что ни WMI, ни FileSystemObject не предоставляют простого и понятного способа работы с папками и подпапками. (Кстати, это одна из областей, в которой Windows PowerShell представляет собой значительное улучшение по сравнению с предыдущими технологиями.) Из-за этого нам нужно использовать рекурсивную функцию, чтобы получить доступ к файлам в папке, файлам во вложенных папках этой папки. и файлы в подпапках этих подпапок. Сегодня у нас нет времени подробно объяснять рекурсию. (Мы упоминали, что мы в отпуске?) Однако вы можете получить общее представление о рекурсии и рекурсивных функциях, заглянув в Руководство по созданию сценариев для Microsoft Windows 2000 .

Хорошо, давайте приступим к делу и постараемся успеть до закрытия парков развлечений. Начнем с подключения к службе WMI на локальном компьютере. (Хотя, назначив имя компьютера переменной strComputer, мы могли бы так же легко запустить этот сценарий на удаленной машине.) Затем мы назначаем имя родительской папки переменной strFolderName. Поскольку мы хотим просмотреть папку C:\Test (а также все ее подпапки), мы присваиваем strFolderName значение C:\Test:

Разумно, правда? И поскольку сейчас самое подходящее время, мы затем создаем экземпляр Scripting.FileSystemObject и используем метод CreateTextFile для создания текстового файла с именем C:\Scripts\Test.txt:

Это подводит нас к этой строке кода:

Здесь мы используем запрос Associators Of для получения списка всех подпапок папки C:\Test. Это может выглядеть не так, но на самом деле наш запрос говорит следующее: Дайте мне список всех элементов, связанных с каталогом C:\Test, при условии, что эти элементы являются подкаталогами (где AssocClass = Win32_Subdirectory).

Когда все сказано и сделано, этот запрос возвращает список всех подпапок верхнего уровня в C:\Test; например, C:\Test\Folder1 и C:\Test\Folder2. Чего он не возвращает, так это папок второго уровня; например, мы не вернем папку типа C:\Test\Folder1\SubfolderA. Чтобы добраться до этих подпапок (то есть подпапок подпапки), нам нужно использовать рекурсивный запрос. Для этого предназначена подпрограмма GetSubFolders. Программно мы передаем этой подпрограмме имя каждой найденной подпапки (например, C:\Test\Folder1 и C:Test\Folder2); в свою очередь, подпрограмма запрашивает в каждой из этих подпапок файлы PDF и любые подпапки. Если есть несколько вложенных вложенных папок, подпрограмма автоматически вызовет себя и будет искать любые вложенные вложенные вложенные папки.

Запутались? Честно говоря, мы тоже. Но не беспокойтесь об этом; просто оставьте код как есть и попробуйте. Для поиска в другой папке (то есть в папке, отличной от C:\Test) просто измените значение переменной strFolderName на имя папки, с которой вы хотите работать. Например, если вы хотите выполнить поиск в C:\Windows, используйте следующую строку кода:

Ой, подождите секунду; мы еще не закончили. Прежде чем мы начнем вызывать подпрограммы, нам нужно составить список всех файлов PDF, которые находятся в нашей родительской папке C:\Test. Для этого мы используем эту строку кода, чтобы вернуть коллекцию всех файлов (экземпляров класса CIM_DataFile), найденных в C:\Test (что, как вы помните, является значением, которое мы присвоили переменной strFolderName):< /p>

Затем мы используем этот блок кода, чтобы проверить каждый файл и посмотреть, имеет ли он расширение файла PDF (обратите внимание, что в WMI точка не является частью расширения файла):

Если у нас есть файл PDF, мы используем метод WriteLine для записи имени файла в наш текстовый файл:

Излишне говорить, что свойство FileName — это просто имя файла без пути или расширения файла. Например, если наш первый файл C:\Test\MyFile.pdf, в итоге мы запишем в текстовый файл следующее:

Это позаботится обо всех файлах в родительской папке C:\Test. А как насчет файлов в любых подпапках C:\Test? Вот для чего предназначен этот блок кода:

Здесь мы просматриваем коллекцию вложенных папок; для каждой подпапки в C:\Test мы вызываем рекурсивную функцию GetSubFolders, передавая путь к папке в качестве единственного параметра:

Это сложно представить, но GetSubfolders будет делать то же самое, что мы только что закончили. Допустим, наша первая подпапка — C:\Test\Folder1. Подпрограмма начнет поиск всех PDF-файлов в папке C:\Test\Folder1; если он их найдет, он запишет имена этих файлов в текстовый файл.

После этого GetSubFolders выполнит запрос и проверит, есть ли в папке C:\Test\Folder1 собственные подпапки. Предположим, что это так; что происходит тогда? Что ж, в этом случае подпрограмма будет вызывать себя, на этот раз передавая имя каждой вложенной подпапки в качестве параметра подпрограммы. Как мы уже говорили, это может вызвать у вас головную боль, просто думая об этом. Но предположим, что у нас есть подпапка с именем C:\Test\Folder1\SubfolderA. Подпрограмма вызовет себя, а затем будет искать PDF-файлы в этой подпапке; после этого она проверит наличие в SubfolderA каких-либо под-под-подпапок, а затем, при необходимости, подпрограмма вызовет себя еще раз. Это будет продолжаться до тех пор, пока не будет достигнут конец строки и не закончатся папки.

С ума сойти, да? К счастью, VBScript выполняет здесь всю тяжелую работу. Все, что вам нужно сделать, это вызвать рекурсивную функцию (которая, если подумать, на самом деле является рекурсивной подпрограммой, не так ли?). VBScript позаботится обо всем остальном, отслеживая, какие папки вы просмотрели, а какие нет. Удивительно, но к тому времени, когда он завершится, этот скрипт просмотрит каждую папку и подпапку в C:\Test (даже если эти подпапки имеют несколько уровней глубины) и запишет имена всех без исключения PDF-файлов в текст. файл C:\Scripts\Test.txt. Если вы нам не верите (и мы не виним вас за скептицизм), попробуйте и убедитесь сами.

Прежде чем вы начнете строить планы на отпуск, мы должны добавить, что мы просто шутим: в Epcot Center нет нового аттракциона под названием «Дикая поездка доктора Скрипто». Судя по сегодняшней колонке, это, наверное, тоже хорошо: мы сомневаемся, что даже Disney может позволить себе страховку ответственности за такую ​​дикую поездку.

Примечание. К тому времени, когда большинство людей прочитает это, TechEd 2007 уже закончится, и сценаристы отправятся в аэропорт. Но только потому, что Teched закончился, это не значит, что веселье закончилось; будьте уверены и посетите нашу страницу TechEd 2007, чтобы узнать о новых статьях, обновлениях TechEd и о своем шансе выиграть куклу-болванчика доктора Скрипто. С TechEd 2007 веселье никогда не кончается!

Автопредложение помогает быстро сузить результаты поиска, предлагая возможные совпадения по мере ввода.

  • Главная
  • Акробат
  • Обсуждения
  • Создание нескольких вложенных папок с помощью оптического распознавания символов PDF

/t5/acrobat-discussions/making-multiple-subfolders-with-pdfs-ocr/td-p/10901721 4 февраля 2020 г. 4 февраля 2020 г.

Скопировать ссылку в буфер обмена

Я пытаюсь сделать несколько PDF-файлов доступными для поиска с помощью OCR. Эти файлы находятся в нескольких подпапках.

Есть ли способ, которым я могу щелкнуть главную папку, содержащую вложенные папки и, следовательно, файлы, и сказать Adobe, что я хочу, чтобы этот раздел был доступен для поиска?

Я знаю, что вы можете щелкнуть вложенные папки, а затем запустить для них программу распознавания текста, но есть ли более быстрый способ автоматизировать этот процесс?

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

1 правильный ответ

Да, используя действие, как упоминалось ранее. Однако у вас должен быть Acrobat Pro. Вы найдете его в разделе «Инструменты» — «Мастер действий». Создайте новое действие, добавьте к нему команду «Распознать текст с помощью OCR», а затем команду «Сохранить» и измените параметр «Файлы для обработки» на «Добавить папку», сохраните его, а затем щелкните по нему на панели «Мастер действий». Вам будет предложено выбрать папку. Выберите родительскую папку и все файлы в ней и во всех ее подпапках (рекурсивно) будут обработаны в этом w.

Скопировать ссылку в буфер обмена

Вы можете использовать Мастер действий в Acrobat Pro.

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

Скопировать ссылку в буфер обмена

Можете ли вы предоставить руководство или некоторую информацию о том, как выполнить это действие. Я просматривал форумы, однако, когда я выбираю папку, чтобы попытаться выполнить это действие, Adobe не будет извлекать (если это правильное слово) файлы из подпапок.

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

Скопировать ссылку в буфер обмена

В действии добавьте папку в «Файлы для обработки».

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

Скопировать ссылку в буфер обмена

Итак, я выбрал верхний файл, содержащий вложенные папки. Я нажимаю «Сохранить», но теперь мое правило не открывается, и я не вижу, чтобы Adobe что-то делала. Я сделал что-то не так?

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

Скопировать ссылку в буфер обмена

Файл не может содержать папки. Вам нужно выбрать родительскую папку, содержащую все подпапки, которые вы хотите обработать.

Будьте добры и уважительны, отдавайте должное оригинальному источнику контента и ищите дубликаты перед публикацией. Узнать больше

Скопировать ссылку в буфер обмена

Я думаю, что могу запутаться, но вот пример того, что я пытаюсь сделать.

Итак, есть родительская папка, а внутри родительской папки есть две подпапки (на фото ниже). Подпапки содержат несколько документов в формате PDF. Я хочу запустить Adobe, чтобы получить все документы из двух подпапок одновременно, вместо того, чтобы выбирать каждую подпапку по отдельности, а затем сообщать Adobe об их распознавании.

Когда я в настоящее время пытаюсь сделать OCR для нескольких файлов, мои текущие инструменты процесса -> выберите сканирование и распознавание -> выберите несколько файлов -> выберите только одну папку -> нажмите «ОК», а затем повторите для необходимого количества подпапок. Есть ли способ автоматизировать этот процесс, выбрав все подпапки родительской папки?

Объединение файлов PDF из нескольких папок в несколько файлов PDF

Введение Подключаемый модуль AutoSplit для Adobe Acrobat позволяет объединять PDF-файлы из нескольких папок в несколько выходных PDF-документов на основе схожести имен файлов. Каждый выходной PDF-документ создается путем взятия ровно одного файла из каждой входной папки и их объединения в один PDF-файл. Файлы объединяются на основе имен файлов. Примеры документов Описание Входные PDF-документы, которые мы собираемся использовать в этом руководстве, расположены в 3 папках: «A», «B» и «C». Папка "A" содержит файл1.pdf, файл2.pdf, файл3.pdf и файл4.pdf. Папка "B" содержит файлы 10.pdf, 20.pdf, 30.pdf и 40.pdf. Папка "C" содержит файлы 100.pdf, 200.pdf, 300.pdf и 400.pdf. Цель состоит в том, чтобы создать 4 выходных файла путем объединения входных файлов на основе схожести имен: - файл1.pdf путем объединения файлов файл1.pdf, файл10.pdf, файл100.pdf; - файл2.pdf путем слияния файлов файл2.pdf, файл20.pdf, файл200.pdf; - файл3.pdf путем слияния файлов файл3.pdf, файл30.pdf, файл300.pdf; - файл4.pdf путем слияния файлов файл4.pdf, файл40.pdf, файл400.pdf. Подход слияния В отличие от обычного слияния документов, в результате этой операции получается несколько выходных файлов. Каждый выходной файл создается путем взятия одного файла из каждой входной папки и их объединения. Файлы объединяются на основе имен файлов. Для каждого файла в первой входной папке создается один выходной файл (с тем же именем), созданный в выходной папке. Документы объединяются путем поиска наиболее похожих имен файлов в каждой входной папке и добавления их к выходному файлу. Каждое имя файла сравнивается с именем текущего выходного файла, и используется имя файла с самым длинным совпадением. Этот метод можно использовать для сборки нескольких персонализированных документов (например, ежемесячных выписок) из нескольких вложенных документов. Пользователь может контролировать минимально необходимое сходство между именами файлов. Поддержка пакетной обработки Эта операция поддерживается структурой пакетной обработки Acrobat (мастером действий) и может использоваться отдельно или внутри других последовательностей пакетной обработки, что позволяет включать операции разделения и слияния в рабочие процессы документа. Предварительные требования Для использования этого руководства вам потребуется копия Adobe Acrobat Standard или Professional вместе с подключаемым модулем AutoSplit™, установленным на вашем компьютере. Вы можете загрузить пробные версии как Adobe Acrobat, так и AutoSplit™. Шаг 1. Откройте меню «Объединить документы из нескольких папок». В главном меню выберите «Плагины > Объединить документы > Объединить документы из нескольких папок». Шаг 2. Укажите выходную папку Укажите выходную папку с помощью кнопки «Обзор». Шаг 3. Установите сходство имен файлов Введите максимально допустимую разницу между двумя именами файлов (в символах). Этот параметр ограничивает слияние только теми файлами, которые отличаются не более чем заданным количеством символов. Чем ниже этот параметр, тем больше должно быть похожих имен файлов, чтобы их можно было объединить вместе.Значение 0 требует точного совпадения между двумя именами файлов. Значение 1 допускает различие только в один символ и т. д. Шаг 4. Укажите входную папку Нажмите «Добавить папку», чтобы добавить входную папку в список слияния файлов. В качестве входных данных вместо папки можно использовать обычные файлы (PDF или любой файл, который может быть преобразован в PDF с помощью Adobe Acrobat). Файлы просто вставляются в каждый выходной файл в соответствии с их положением во входном списке. Выберите входную папку. После завершения нажмите «ОК». Шаг 5. Добавьте дополнительные входные папки. Выбранные папки или файлы появятся в списке «Входные папки/файлы». Нажмите кнопку «Добавить папку», чтобы добавить дополнительные входные папки по мере необходимости. чтобы добавить еще две папки - "B" и "C". Шаг 6 - Начать процесс слияния Мы добавили 3 папки "A", "B" и "C" в качестве входных данных для процесса слияния. "Входные папки/файлы" В списке отображаются выбранные папки и отображается соответствующее количество файлов в каждой папке. Нажмите «Сохранить настройки». ", чтобы сохранить выбранные входные папки и параметры обработки в файл настроек для повторного использования в будущем. Вы можете загрузить настройки из файла настроек, нажав кнопку "Загрузить настройки. ". Нажмите кнопку "ОК", чтобы начать процесс слияния. Шаг 7. Изучите результаты После завершения обработки на экране появится диалоговое окно «Результаты авторазделения». Он показывает список выходных документов. Нажмите «Открыть выходную папку», чтобы проверить выходные файлы. Шаг 7. Проверка выходных файлов Подключаемый модуль AutoBookmark™ автоматически создал 4 выходных файла и сохранил их в выходной папке, выбранной на шаге 2. - файл1.pdf путем слияния файлов файл1.pdf, файл10.pdf, файл100.pdf; - файл2.pdf путем слияния файлов файл2.pdf, файл20.pdf, файл200.pdf; - файл3.pdf путем слияния файлов файл3.pdf, файл30.pdf, файл300.pdf; - файл4.pdf объединяет файл4.pdf, файл40.pdf, файл400.pdf. Программное обеспечение автоматически создало файл «Объединить документы из нескольких папок с обработкой Report.txt» и «Объединить документы из нескольких папок на титульном листе». PDF-файлы. В отчете об обработке перечислены входные файлы, используемые для создания каждого выходного файла, а также показаны входные папки и используемый параметр подобия.

Adobe Bridge — отличный файловый браузер, который можно использовать для самых разных целей. Тем не менее, я использую его в основном для просмотра изображений на высокой скорости в одной или нескольких папках - одновременно. На этой странице кратко объясняется, как этого добиться. Для этой демонстрации я использую Bridge CS6.

Одновременный просмотр нескольких файлов из множества папок

Если у вас есть рабочий каталог, содержащий несколько подкаталогов, и вы не можете щелкать каждый из них по очереди, вы можете просмотреть все файлы одновременно, выбрав Просмотр/Показать элементы из подпапок:

Adobe Bridge Показать элементы из подпапок

Количество файлов, отображаемых в окне браузера, будет немедленно включать все содержимое каждой подпапки, содержащейся в выбранном каталоге. Однако, если вы просматриваете только изображения, а во вложенных папках есть другие файлы, вам также придется просмотреть все другие типы файлов:

Просмотр элементов с помощью Adobe Bridge

Вы можете выбрать тип файла в разделе Сортировать по типу в правом верхнем углу. Хотя это сгруппирует все файлы JPEG/JPG/PNG и т. д. вместе, файлы всех других типов также будут присутствовать.

Используйте поле поиска, чтобы скрыть другие типы файлов

Самый быстрый способ скрыть все остальное (и отобразить файл одного типа) — использовать поле поиска (в правом верхнем углу окна браузера Bridge). Если вы введете JPG в поле, останутся видимыми только JPG из выбранных каталогов. В качестве альтернативы введите PNG или JPEG (или любые другие) для разных типов изображений. Однако этот метод вернет только один тип файла изображения и скроет остальные. Это нормально, если вы точно знаете, что присутствуют только форматы файлов .JPG, но не так хорошо, если есть какие-либо другие:

Используя поле поиска в Adobe Bridge

Используйте поиск. возможность отображать несколько типов изображений и скрывать остальные

Найти функцию Adobe Bridge

Как вы можете видеть выше, эта функция позволяет использовать методы поиска "И" и "ИЛИ".Введите суффиксы типов файлов в разделе «Критерии» (вы можете выполнять поиск по ключевым словам или типам файлов — среди многих других параметров). Выберите Сопоставить любое или Все в разделе «Результаты», и в окне браузера отобразятся все изображения (и только маги) в подпапках:

Поиск результатов функции, Adobe Bridge

После этого вы сможете одновременно просматривать только изображения из нескольких каталогов — очень удобная функция.

Читайте также: