【问题标题】:sejda-console.bat passing parameters with spacessejda-console.bat 用空格传递参数
【发布时间】:2013-08-14 02:45:36
【问题描述】:

我正在使用sejda-console.bat,当涉及到空间时,我遇到了参数问题。

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

call sejda-console.bat simplesplit -f %1 -o %~dp1 -s all

如果我的文件的路径是:

Z:\Test\test.pdf

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

Z:\Test Folder\test.pdf

它失败并出现以下错误:

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 或者只是传递带有空格的参数可以为我指明正确的方向。我已经广泛搜索并尝试了所有可能的参数组合等。

谢谢

【问题讨论】:

    标签: java batch-file parameters spaces sejda


    【解决方案1】:

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

    call sejda-console.bat simplesplit -f "Z:\Test Folder\test.pdf" -o "Z:\Test Folder\" -s all
    

    【讨论】:

      【解决方案2】:

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

      这似乎解决了问题,

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

      #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)
      

      【讨论】:

        【解决方案3】:

        刚刚解决了这个确切的问题,这是我传递给 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]

        因此,即使我的系统是 Windows 10,我也可以使用正斜杠“/”作为路径分隔符。将整个路径用双引号括起来就可以了。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-28
          • 1970-01-01
          • 2019-11-13
          • 2017-05-02
          • 2016-01-19
          • 2010-12-11
          • 2023-03-18
          • 2012-05-07
          相关资源
          最近更新 更多