0

意图

我正在尝试遍历一个目录并将所有 9000 个左右的 pdf 文件转换为 png

for i in *.pdf; do
    pdftoppm -f 1 -l 2 -png $i ${i%.pdf*}
done

问题

该循环仅适用于大约 500 个案例。当我在一些未转换的 pdf 文件上手动调用 pdftoppm 时,它可以工作。

例如,一个在循环中不起作用的文件是w7hnp - FOO BAR 8-18-12 NOT FINAL DOC.pdf. 当我使用制表符完成手动调用pdftoppm文件名时,包括转义字符:w7hnp\ -\ FOO\ BAR\ 8-18-12\ NOT\ FINAL\ DOC.pdf并且该命令工作正常。

有没有办法确保正确逃脱空间?

我需要保留文件名以与数据库中的其他信息匹配,因此除非我可以创建具有新旧名称的字典,否则重命名将不起作用。

4

1 回答 1

1

您应该像这样引用变量:"$i""${i%.pdf*}"

于 2018-10-18T20:52:32.320 回答