首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sejda-console.bat传递带空格的参数

sejda-console.bat传递带空格的参数
EN

Stack Overflow用户
提问于 2013-08-13 01:20:00
回答 3查看 1.5K关注 0票数 1

我正在使用sejda-console.bat,当涉及到一个空格时,我遇到了参数方面的困难。

我正在尝试使用simplesplit功能,并按如下方式调用控制台:

代码语言:javascript
复制
call sejda-console.bat simplesplit -f %1 -o %~dp1 -s all

如果我的文件的路径是:

代码语言:javascript
复制
Z:\Test\test.pdf

这个脚本运行得很完美。但是,如果我的文件的路径是:

代码语言:javascript
复制
Z:\Test Folder\test.pdf

它会失败,并显示以下错误:

代码语言:javascript
复制
call sejda-console.bat simplesplit -f "Z:\Test Folder\test.pdf" -o Z:\Test Folder\ -s all
18:16:29.746 Configuring Sejda 1.0.0.M2
18:16:29.777 Loading Sejda configuration form default sejda.xml
18:16:30.027 Starting execution with arguments: 'simplesplit -f Z:\Test Folder\test.pdf -o Z:\Test Folder\ -s all'
18:16:30.027 Java version: '1.7.0_25'
18:16:30.199 Option only takes one value: --output -o value : output directory (required)

我想知道有没有人熟悉sejda-console,或者只是传递带空格的参数,可以为我指明正确的方向。我进行了广泛的搜索,尝试了所有可能的参数组合等。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2013-08-16 16:30:29

我认为您也应该在-o选项中使用引号:

代码语言:javascript
复制
call sejda-console.bat simplesplit -f "Z:\Test Folder\test.pdf" -o "Z:\Test Folder\" -s all
票数 2
EN

Stack Overflow用户

发布于 2017-01-02 04:37:00

我建议将长目录路径名转换为短路径名,例如:使用C:\TESTFO~1\,而不是使用带有空格的C:\test文件夹

这似乎解决了问题,

下面是一个从AutoIt脚本调用sejda-console的工作示例

代码语言:javascript
复制
#include <Constants.au3>

Local $iPID, $sOutput = ""

$sFilePath = "C:\test folder with spaces\"
$sFileShort= FileGetShortName($sFilePath)
$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" merge -l " & $sFileShort & "files.csv -o " & $sFileShort & "output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput)

sejdaspacesautoit

票数 0
EN

Stack Overflow用户

发布于 2018-01-19 07:21:57

刚刚解决了这个问题,这是我传递给sedja的一个示例。

simplesplit -j overwrite -s all -f "C:/Users/user/Desktop/PDF_splitting/pages.pdf" -o "C:/Users/user/Desktop/PDF_splitting/spaced path/" -p [BASENAME]_[CURRENTPAGE]

因此,即使我的系统是Windows10,我也可以使用正斜杠"/“作为路径分隔符。用双引号将整个路径括起来,它就能正常工作。

我认为“正常”路径字符串不起作用的原因是反斜杠"\“在Java中是转义字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18192927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档