1

私は使用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 に精通している人や、スペースを使用してパラメーターを渡すだけで、私を正しい方向に導くことができる人がいるのだろうか。私は広く検索し、パラメータなどの可能なすべての組み合わせを試しました.

ありがとう

4

3 に答える 3

2

-oオプションにも引用符を使用する必要があると思います。

call sejda-console.bat simplesplit -f "Z:\Test Folder\test.pdf" -o "Z:\Test Folder\" -s all
于 2013-08-16T08:30:28.557 に答える
0

長いディレクトリ パス名を短いパス名に変換することをお勧めします。たとえば、スペースを含む C:\test フォルダーではなく、C:\TESTFO~1\ を使用します。

これで問題は解決したようですが、

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)

于 2017-01-01T20:36:59.613 に答える