• 締切済み

WebOTXのコマンド実行結果ステータス取得方法

WebOTXのdeployコマンドをバッチで実行しようとしています。 以下のコマンドに続けて、エラー処理を記述したいのですが、 dosコマンドのerrorlevelではエラーを取得できません。 cmd /c otxadmin deploy --user *** --password *** --force=true WARファイル WebOTXコマンドのエラーを拾う方法を教えてください。 よろしくお願いします。

みんなの回答

回答No.2

#1です。 cmd /c otxadmin deploy --user *** --password *** --force=true WARファイル >log.txt または cmd /c otxadmin deploy --user *** --password *** --force=true WARファイル 2>log.txt ではダメですか。

miracle729
質問者

お礼

お礼・回答遅くなり申し訳ありません。 上記のコマンドで取得はできるようですが、DOSコマンドのerrorlevelで取得できる方法を発見しました。以下の通りです。 call otxadmin deploy --user *** --password *** --force=true WARファイル otxadminはバッチファイルでしたので、バッチファイルを呼び出し、その中でエラーが発生するする場合、callだと取得できるようです。 javaでいう、呼び出したメッソド内でexceptionが発生し、呼び出し元のcatchでexceptionを拾ったようなものでしょうか。 いろいろとお手数おかけしました。 ありがとうございました。

回答No.1

cmd /cでも%errorlevel%には値が戻ります(一応確認してみました)。 otxadminが値を返していないと考えられます。 エラーコードは当てになりそうに無いので別の方法を考えましょう。勝手に考えて見ます。 (1)案 エラーコードではなくで何かメッセージは出ていないのでしょうか?。otxadminはUNIX版もあるようなので、正常であればエラーメッセージが出ず、エラーのときだけメッセージが出る仕様ではないのでしょうか?。 (2)案 deployされた結果が分かるのであればそれを確認するのはいかがでしょう。先に出力先を削除しておいてdeployするのはどうでしょうか?。 ご検討ください。

miracle729
質問者

お礼

引き続き回答いただきありがとうございます。 また、案を出していただきありがとうございました。 (1)案に関してですが、 otxadminのエラーメッセージはコマンドプロンプト上には表示されますが、 それもまた取得方法が分かりません。 イベントビューアにエラーが出ていればDOSコマンドで拾えるかと思いましたが、 出力されておらず・・・ (2)案に関してですが、 deployされた結果はファイルの日付が更新されていれば分かるのでしょうが、 それはそれでどのファイルを対象とするかなど、いろいろ問題が出てきてしまいます。 せっかく出していただいた案なのですが、 もう少し対応方法を検討してみようと思います。 何か良い案が出れば、こちらに更新させていただきます。

関連するQ&A

  • WebOTXのdeployコマンドについて

    WebOTXのdeployコマンドをバッチで実行しようとしています。 deployコマンドまでの処理は正常に実行されるのですが、後続処理が実行されずに終了してしまいます。後続処理も正常に実施するにはどうすればよいのでしょうか。教えてください。 コマンドは以下のとおりです。 otxadmin deploy --user *** --password *** --force=true WARファイル ※このコマンドは正常に実施され、warファイルも展開されています。 ですが、次のdosコマンドのechoから実行されていません。 よろしくお願いします。

  • Runtime.execでの実行結果の取得

    初歩的な質問ですいませんが、execでバッチファイルを実行し、 その結果を取得したい場合、getInputStreamとgetErrorStream以外に 取得する方法はあるのでしょうか? バッチファイルを単独で実行した場合に画面出力されるエラーが、 なぜか取得できないでいます。 ただ、実行しているコマンドはDOSコマンドではなく、 別アプリのEXEファイルになります。 (DOSコマンドの結果は正常に取れました)

    • ベストアンサー
    • Java
  • 実行結果を戻り値で取得したい

    MS-DOSバッチの実行結果を文字列で取得したいです。 イメージ例としては、下記のようなバッチ2つがあり、 バッチAを起動します。そうすると実行結果の戻り値として 「TEST」という文字列が取得できたら良いです。  ※下記例では「ERRORLEVEL」に入っているようなイメージです。 しかしながら、ERRORLELVEに格納できるのは数値のみの為、 エラーになってしまいます。 どうすれば、実行結果を戻り値で取得できるでしょうか? お手数ですが、MS-DOSで不可能な場合、VBScriptやWSHでも かまいませんので、処理をキックしてその戻り値を文字列で取得する方法を お教えください。お願いいたします。 -------------------------------- 例 【バッチA】 call バッチB echo %ERRORLEVEL% 【バッチB】 exit /b "TEST" -------------------------------- と実行し

  • Javacは、コマンドラインで実行する際、エラーナンバーを返しますか?

    現在、バッチファイルを作っていて、「Javacでコンパイルしてエラーがないと作成されたclassファイルを実行して、エラーがあったらバッチ処理を終了する」というバッチファイルを作成しようとおもっています。 バッチファイルでの条件分岐は if ERRORLEVEL構文で処理しようかと思っているんですが、そもそもjavacコマンドはERRORLEVEL変数に入れるようなエラーナンバーをコマンドプロンプトに返してくれるのかとおもいまして。。 分かる方は回答よろしくお願いします。

    • ベストアンサー
    • Java
  • SQLファイル内のSQL実行ログ取得

    すいません、教えてください。 以下のようなCMDバッチを作成しました。 TEST.cmd------------ sqlplus -s ID/PASS@DB @MAIN.sql 'SUB1.sql' 'SUB2.sql' > MAIN.log echo %ERRORLEVEL% MAIN.sql------------ @&1 @&2 commit; quit; これを実行した場合、MAIN.sqlの最後のコマンドquit;の 実行結果を返してきているのでしょうか? SUB1.sql、SUB2.sqlで失敗していても%ERRORLEVEL%で0が返ってきます。 MAIN内のそれぞれのsqlの実行結果ログを取得することは可能でしょうか? SUB.sqlの内容はいずれも単純なMERGE文です。 識者の方がいればご教示いただきたく存じます。 よろしくお願いいたします。

  • javaアプリケーションからコマンド実行結果の取得

    javaアプリケーションからcatコマンドを実行し、その結果を取得したいのですが、うまくいきません。runtime.exec()実行中にエラーとなります。 String cmd = "cat error.log; echo $status"; Runtime runtime = Runtime.getRuntime; Process process = runtime.exec(cmd); rshを使うとOKです。 "rsh localhost cat error.log; echo $status" shを使うとNGです。 "sh -c cat error.log; echo $status" "sh -c \"cat error.log\"; echo $status" ターミナルからは上記で内容取得、および、結果取得はできるのですが。 環境は、UNIX JDK1.2.1です。 よろしくお願いします。

  • ftpコマンド出力結果の取得

    ftpコマンドのバッチ処理によってファイルの一覧の結果を取得したいのですが、 リダイレクション等を用いても取得できません。 どのようにすればいいか教えてください。 **************状況************* OSおよびOSレベル:AIX5.2 シェル:Kシェル コマンドファイルの中身(ftp.txt) cat << EOF | ftp -n open SERVER user USER PW cd PATH ls -l bye EOF SERVER:実際のサーバー名 USER:実際のユーザー名 PW:実際のパスワード PATH:実際のパス これを以下のように実行し、結果を取得しようとしました。 # ./cmd.ftp > log しかし、出力ファイルlogの中身はカラっぽでした。 ところが、リダイレクションを外し、コマンドファイルのみを実行すると、結果が画面に表示されます。 何故、画面には表示されるのに、リダイレクションやパイプでは結果が渡されないのかが分かりません。

  • perlでコマンドプロンプト実行

    いつもお世話になります。 現在、jperlを使用し、 あるフォルダ内の中にあるサブフォルダをlaplusを使用し コマンドラインから圧縮をかけるというスクリプトを作成しております。 そこで、下記ロジックを実行するとエラーになります。 【ロジック】  $cmd = "\"c:\\Program Files\\Lhaplus\\Lhaplus.exe\" /c:lzh   o:\"C:\\Users\\testtaro\\Documents\\LAPLUS_TEST\"   \"C:\\Users\\testtaro\\Documents\\LAPLUS_TEST\\2011-03-11(0100)\"";  system($cmd); 【エラーメッセージ】  'c:\Program' は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチ ファイルとして認識されていません。 「$cmd 」の内容をデバック出力しそれを直接コマンドプロンプトで実行すると 正常に圧縮されます。 おそらく「Program Files」の半角スペース内で切れてしまっているのだと思いますが、 ダブルクォテーションでくくるやり方が間違っているのでしょうか。 超初心者の質問で大変申し訳ありませんが宜しくお願いします。

    • ベストアンサー
    • Perl
  • コマンドプロンプトのERRORLEVELを取得したい

    VBからコマンドプロンプトを呼び出し、 他のEXEを実行させ、 そのERRORLEVELを取得したいのですが、 どのようにすればよいでしょうか?

  • 管理者権限を与えたコマンド実行

    管理者権限の無いユーザーにパスワードを教えずにコマンドを実行させる方法がないか検討しています。 rusas コマンドでは可能なようですが、パスワードをプロンプト要求されることと、それを回避する方法も難しいようです。 psexecコマンドではユーザー名とパスワードをパラメタで渡すことが可能なようですが、リモートコンピュータでの実行が前提になっているのか、ローカルコンピュータ上での動作がうまくいかないようです。 やりたいことは、ネットワークで繋がっていないPCに対してのIPアドレスの変更です。 IPアドレスを変更していない状態で、PCを異動先へ持って行ってしまったため、リモートでの操作ができないためです。 netshコマンドでアドレスの変更は実現できるようですが、これをローカル管理者権限で動かすバッチさえできれば、そのバッチをcom化してパスワードが見えないようにすればなんとかなるのではないかと思っています。 psexec -u localuser -p password 動作させたいコマンド と入れると、 最後に動作させたいコマンド exited with error code 1 と出てきてエラーになります。 フルパスで入れると、エラーは出なくなります。 これで問題無いとしても、今度はフルパスで決まった場所にコマンドをコピーするのに苦労しますが、他に方法は無いでしょうか?

専門家に質問してみよう