我知道另一个帖子有很多关于这个问题的答案;但是,我是新手,很多答案对我来说都是胡言乱语。不过我正在努力学习:)
无论如何,我已经安装了 ghostscript,并尝试使用此脚本运行了几次
for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ;
我从这里。
我真的不知道该把程序批量提取的目录名、输出文件名和输出目录放在哪里。我知道这对你们大多数人来说都是基本的东西,但如果有人能帮我,我可能就省下好几年的工作了。
谢谢!
答案1
PDF 文件所在的目录是当前目录,因为for files in *.pdf ; ...
没有为匹配的文件指定目录路径。
"$file"
输出文件由bash
扩展名组成,它从文件名末尾"${file%.pdf}-page1.pdf"
删除并将其替换为,例如,在同一目录中生成输出文件。.pdf
-page1.pdf
report.pdf
report-page1.pdf
您可以在子句中添加目录路径for
,例如for files in SourceDir/*.pdf ; ...
您可以更改替换字符串;或者您可以添加一个目录,但如果在子句中使用目录路径,替换会变得更加复杂for
。
你应该读参数扩展在bash
手册中。