1

私のスクリプト

start /wait /b groovy -cp %webservicejarpath% importFile.groovy -p ProcessYYY -i PDF"

次のようなコンソール出力が得られます:

プロセス単位 'ProcessYYY' で pdf 'data.PDF' が正常に実行されました。戻り値:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <finalresult process="ProcessYYY" >
    <info result="successful"   time="12:11:12" totalfilesimported="1" errorimportedfiles="0">
    <jobs class="PDFIMPORT">
        <job id="Job1003"/>
    </jobs>
   </info>
  </finalresult>

問題は、この情報を取得し、バッチ スクリプトを使用して結果を検証する方法がわからないことです。たとえば。: if (result=="successful") && (errorimportedfiles==0) Then Echo "PDF のインポートは成功しました"。

バッチスクリプトを使用して結果を検証する方法はありますか? 前もって感謝します。

4

1 に答える 1

1

find を使用して、出力内のテキストを探すことができます。

start /wait /b groovy -cp %webservicejarpath% importFile.groovy -p ProcessYYY -i PDF" > out.txt

type out.txt | find "successful"

IF %ERRORLEVEL% == 0 goto success

goto fail


:success
REM SUCCESS, Do what work you want due to a success
echo "The import is successful"
goto end


:fail
REM Fail, DO what work you want because it failed.
echo "The import was not successful"



:end

成功した結果に固有の「PDF を正常に実行しました」という文字列の代わりに、任意のものを配置できます。

変数 %ERRORLEVEL% は最後に実行されたコマンドに対して設定され、最後のコマンドは FIND であるため、「PDF を正常に実行しました」という文字列が見つかった場合、%ERRORLEVEL% は 0 になります。

エラーがある場合は 1 になります。

コードを変更し、代わりにファイルに出力します。通常、最後に find コマンドをパイプすることで機能しますが、このコマンドを使用しない場合は、最初にファイルに保存してからファイルをチェックする可能性があります。Endoro もコメントでこの方法について言及しています。

マーティン

于 2013-07-23T14:46:50.017 に答える