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

/usr/bin/chm2pdf --book *.chm *.pdf

а также

/usr/bin/chm2pdf --book *.chm [*.pdf]

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

Вот сообщение, которое мне предоставлено:

#/usr/bin/chm2pdf --book *.chm [*.pdf]
Usage:
        /usr/bin/chm2pdf [options] input_filename [output_filename]

Options:
...

Мой вопрос, более конкретно, касается пакетного преобразования, поскольку я использовал приведенные выше примеры для правильного преобразования отдельных файлов .chm, и в описании утилиты пакетное преобразование, очевидно, является особенностью.

1 ответ1

3

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

Если они все находятся в одной папке, то должен работать такой простой скрипт, как этот:

#!/usr/bin/env bash

for i in `find . -maxdepth 1 -type f -name "*.chm"`; do
    /usr/bin/chm2pdf --book ${i} `echo ${i} | sed 's/.chm/.pdf/'`
done

Это должно быть ближе к тому, что вам нужно.

Чтобы объяснить это:

1) Вы перечисляете все подходящие файлы для типа * .chm на максимальной глубине 1 папки (папка, в которой вы находитесь).
2) Для каждого из них запустите /usr/bin/chm2pdf где ${i} будет именем отдельного элемента. Затем замените имя файла для выходного файла с «what.chm» на «what.pdf».
3) Тогда сделано.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .