inkscape 无法在命令提示符下工作

inkscape 无法在命令提示符下工作

我正在看问题(将 EPS 转换为 PDF)他们建议使用 Inkscape 将 EPS 转换为 PDF 图像。我需要完全相同的东西。使用 GUI,它运行良好。

由于我有大约 200 张图像需要转换,有没有办法自动完成这个过程?或者至少通过命令行运行它,这样我可以更快地完成这个过程?即使从命令提示符一次执行一个也可以,因为从 GUI 执行这个操作很麻烦。

我正在学习批处理脚本,因此对于任何给出的答案,您能否详细说明该过程的工作原理

我已经阅读在命令提示符下运行 Inkscape,但我收到错误消息“inkscape”未被识别为内部或外部命令、可操作程序或批处理文件。

我问这个问题在...TeX StackExchange 网站并被要求运行以下批处理脚本。

@echo off

for /r %%i in (*.eps) do "c:\Program Files (x86)\Inkscape\inkscape.exe" --export-pdf=%%i.pdf %%i

当我使用 cmd 导航到目录时出现错误

Inkscape 已从执行的脚本中收到附加数据。脚本未返回错误,但这可能表示结果不会如预期。

但是 Inkscape 刚打开,之后什么都没发生。有人能帮帮我吗?

答案1

  • 不要使用inkscape.exe。使用inkscape.com包装器。这将允许您从 Windows 命令行查看输出和错误消息。请参阅此常见问题解答条目

  • 尝试明确使用该-f选项来查看是否有区别,即更改:

    --export-pdf=%%i.pdf %%i
    

    -f "%%i" --export-pdf="%%i.pdf"
    
  • 测试路径中带有反斜杠的单个文件,以确保 Inkscape 可以接受它。如果不行,您可能需要转换为正斜杠。

答案2

使用/r选项for,您将获得该目录和子目录中所有 .eps 文件的递归列表,其值为%%i= c:\some\path\probably with\spaces\someEPSfile.eps

Inkscape 可能因文件名中意外的空格而卡住了。 它可能可以通过以下方式修复:

for /r %%i in (*.eps) do "c:\Program Files(x86)\Inkscape\inkscape.exe"
--export-pdf="%%i.pdf" "%%i"

如果这不起作用,那么我会尝试删除递归标志(也许 Inkscape 不喜欢文件名中的斜杠?):

for %%i in (*.eps) do "c:\Program Files(x86)\Inkscape\inkscape.exe"
--export-pdf="%%i.pdf" "%%i"

相关内容