【发布时间】:2021-11-29 07:56:33
【问题描述】:
GhostScript 完成将输入文件转换为 PDF 文件后,谁能告诉我如何使用 PostScript deletefile 运算符删除输入文件。
【问题讨论】:
-
“(/路径/文件名)删除文件”。请注意,当前版本的 Ghostscript 将拒绝执行此操作,除非您使用 -dNOSAFER(推荐不)运行或将 --permit-file-all=/path/filename 添加到命令行。这是一种安全措施,可防止 PostScript 程序在未经明确许可的情况下干扰磁盘内容。
-
@KenS - 感谢您的回复。我似乎很难正确使用语法/标点符号。
"C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" -q -dNOSAFER -sDEVICE#pdfwrite -o "C:\Temp\Temp_0001.pdf" -c (C:/Temp/ Temp_0001.ps) 删除文件 -f "C:\Temp\Temp_0001.ps"。额外的帮助将不胜感激。在其他部分正常工作后,我将删除 -dNOSAFER! -
nvm - 我想我明白了。我不得不切换 -c 和 -f 开关(和参数)。但是,似乎 DOS/Windows 样式路径规范“C:\Temp\Temp.ps”对于 deletefile 操作员来说是不可接受的,但 C:/Temp/Temp.ps 甚至 C:\\Temp\\Temp 似乎是不可接受的。 ps似乎工作正常。有什么解决方法吗?
-
没有。 IIRC 这是由于命令外壳处理,'\' 被视为转义。您要么需要加倍 '\' 以便命令 shell 将它们减为 1,要么使用 Unix 样式的行尾。这不是 PostScript 或 Ghostscript 做的,而是 Windows。您的命令行在 -c 和 -f 之间的内容周围缺少引号“”。输入也是按顺序处理的,所以 -c...-f 在输入文件名之前处理。这意味着它将删除文件,然后尝试处理它。我敢肯定你不是那个意思:-)