2016-12-20 24 views
0

バッチスクリプトを使用してWindowsでRESTを使用してバルクファイルをリモートサーバーにアップロードするためにcurlを使用しています。成功したイベントと失敗したイベントを追跡する必要があります。失敗したイベントについては、リモートサーバーからJSON応答を取得したいと考えています。バッチファイル条件付き実行ログ

">> debug.log"コマンドに追加を追加すると、すべてのイベントをキャプチャできます。しかし、私は約50k以上のファイルを処理しているので、失敗をキャプチャしたいだけです。私は一度 "> debug.log"ファイルに書き込んでみた後、次のループの前に情報を解析しますが、追加していなければファイルは常に空のままです。

私は何かアドバイスをいただきありがとうございます。

for %%f in (*) do ( 

    curl !url! --request POST --header "Accept:application/json" --header "Authorization:%auth%" -F "[email protected]%filepath%\%%f" >> %mypath%\%logfolder%\debuglog.txt && (
     echo %filepath%\%%f success >> %mypath%\%logfolder%\successlog.txt 
    ) || (
     echo %filepath%\%%f error >> %mypath%\%logfolder%\errorlog.txt 

     REM set JSONDEBUG= 
     REM for /F "delims=" %%w in (%mypath%\%logfolder%\debuglog.txt) do (set JSONDEBUG=!JSONDEBUG! %%w) 

     REM set JSONDEBUGPARSE=!JSONDEBUG:~11,-1! 
     REM echo !JSONDEBUGPARSE! >> %mypath%\%logfolder%\errorlog.txt 
    ) 
) 
+0

debuglog.txtの例とerrorlog.txtをどのように表示できますか? – Richard

答えて

1

あなたはAPPENDせずに、一時ファイルにカール出力を書くことができ、その後、あなたの障害ブランチであなたは、一時ファイルを入力することができ、あなたのログに追加します。物事を読みやすくするためにいくつかの行を続けました。

for %%f in (*) do ( 
    curl !url! --request POST^
      --header "Accept:application/json"^
      --header "Authorization:%auth%"^
      -F "[email protected]%filepath%\%%f" > curltemp.txt && (
    echo %filepath%\%%f success >> %mypath%\%logfolder%\successlog.txt 
) || (
    echo %filepath%\%%f error >> %mypath%\%logfolder%\errorlog.txt 
    type curlTemp.txt >> %mypath%\%logfolder%\debuglog.txt 
    REM set JSONDEBUG= 
    REM for /F "delims=" %%w in (%mypath%\%logfolder%\debuglog.txt) do (set JSONDEBUG=!JSONDEBUG! %%w) 
    REM set JSONDEBUGPARSE=!JSONDEBUG:~11,-1! 
    REM echo !JSONDEBUGPARSE! >> %mypath%\%logfolder%\errorlog.txt 
) 
) 
del curlTemp.txt