• ベストアンサー

BATファイルでの実行結果判定について

Windows2003のバッチファイルで以下のことを実行したいです。 (1)Oracleのshutdown immediateコマンドを実行する (2)shutdownが一定時間応答なしであれば、←★★これ★★  Oracleのプロセスをkillする。 (3)Oracleのstartup restrict -> shutdown normalを実行 「shutdownが一定時間応答なしであれば」 このような条件判断をするにはどのようにバッチファイルを 書けばよいでしょうか?

  • 415
  • お礼率72% (27/37)

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

バッチファイルでは無理です。 VBScript+WSHでしょうか。 一定時間後に、shutdownで終わってようが終わっていまいが、Killするのではいけないのですか?

415
質問者

お礼

ありがとうございます。一定時間経過後にkillするようにしてみます。

関連するQ&A

  • batが実行できない

    すいません、緊急で教えてください。 簡単なバッチを作成し、test.batとしてwinXPでtest.batをダブルクリックして実行しようとしましたが、 一瞬だけ黒い画面がひらいて、実行されません。 仕方なくプロンプト上で手動でtest.batを実行しようとしましたが 下記エラーでどうもtest.batの文字が認識されないようです。 C:\>r 'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 当方、初心者なので、調べてもわかりませんでした。 すいませんが、教えてください。

  • 画面ロック中のタスク実行(shutdown -s)について

    定時になったら自動的にwindowsを終了させるため shutdown -sコマンドを埋め込んだバッチプログラム をタスクスケジューラから起動させようと思っていますが、なぜか画面ロックをしていると shutdown -sコマンドは実行されません。 バッチファイル内部に併記した copy c:\a.txt c:\aa.txt などは実行されているようなのですがなぜ shutdown -sコマンドのみ実行ができないのでしょうか。 また実行する方法などがあれば教えていただければと思います。

  • .bat(バッチ)から.batを実行したいのですがエラーになってしまいます。

    <やりたい事> (1)メニュー的なバッチからOracleインストール後 (2)OracleのDB作成sqlを実行する.bat(バッチ)を実行する。 <現状> メニュー的バッチから(2)をCALLで呼びだすと「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」とコンソールに表示されてしまいます。 コマンドの拡張子を実行できる設定になっている事は確認できています。 また、コマンドプロンプトから(2)のバッチを実行すると実行できました。 色々と調べて見たのですが原因、解決策が見つかりません。 どうか皆様のお力をお借りできればと思います。 宜しくお願いします。 ↓以下バッチの詳細 <(1)メニュー的なバッチ> ECHO OFF :Start ECHO. ECHO 1. ・・・ 運用APLデータベース設定 %P5% ECHO 99. ・・・ 終了 SET Process= SET Choice= SET /p Choice=Type 選択して下さい。 IF '%Choice%'=='1' GOTO MakeDB :MakeDB REM 5. 運用APLデータベース設定選択時 SET Process=運用APLデータベース設定 ECHO *** "%Process%"開始 *** REM 文字変換バッチ実行 CALL C:\TEMP\aaaa.bat IF ERRORLEVEL 1 GOTO ExceptionError :InputError REM 入力エラー時 ECHO 不正なパラメータが入力されました。 GOTO Start :ExceptionError REM 例外エラー時 ECHO ******** 失敗しました。 ******** GOTO Start :End REM バッチを終了する。 EXIT <(2)OracleのDB作成sqlを実行する.bat(バッチ)> SET ORACLE_INSTALL_DIR=C:\oraclexe SET ORACLE_BIN_DIR=%ORACLE_INSTALL_DIR%\app\oracle\product\10.2.0\server\BIN SET ADMIN_DIR=%ORACLE_INSTALL_DIR%\app\oracle\admin\XE SET ORADATA_DIR=%ORACLE_INSTALL_DIR%\oradata\XE SET DBS_DIR=%ORACLE_INSTALL_DIR%\app\oracle\product\10.2.0\server\dbs SET USERNAME=aaa SET PASSWORD=bbb REM // LOGファイル名用に日付の取得 // FOR /F "tokens=1,2,3 delims=/, " %%i IN ('date /t') DO SET SYSDATE=%%i%%j%%k REM // 「Win31J」に文字変換 // ECHO 文字変換開始 %date% %time% >> "C:\install%SYSDATE%.log" "%ORACLE_BIN_DIR%\sqlplus" %USERNAME%/%PASSWORD% as sysdba @C:\TEMP\Drop.sql >> "C:\install%SYSDATE%.log" IF ERRORLEVEL 1 GOTO ExceptionError ECHO DBユーザー作成開始 %date% %time% >> "C:\install%SYSDATE%.log" "%ORACLE_BIN_DIR%\sqlplus" %USERNAME%/%PASSWORD% as sysdba @C:\TEMP\CreateDB.sql >> "C:\install%SYSDATE%.log" IF ERRORLEVEL 1 GOTO ExceptionError

  • ファイル名を指定して、batファイルを実行したい。

    C♯、PostgresSQL環境です。 フォームのボタンを押した時、batファイルを実行したいと 考えています。 処理の内容は、DBのバックアップ・リストアです。 現在は、Process.Startを使ってバックアップ用のbatファイルを 実行していますが(処理としてはpg_dumpallをしています)、 リストア時はファイル名を指定してリストアさせたいのです。 (ファイル名を指定してリストア用batファイルを動かしたい) Process.Startの第二引数でファイル名を渡せば良いかと思ったの ですが、バッチファイルでそれを受け取って処理に入れるには どうすれば良いのでしょうか? (バッチファイルはコンソールアプリとして作ったわけではなく、 メモ帳で作成したものです) ヒントをいただけると助かります。 宜しくお願いします。

  • XPで、プロセスをKILLするDOSからのコマンドは。

    WindowsXPです。 Ctr+Alt+Del で、タスクマネージャを起動してプロセスのところを見ると、いらないプロセスがあるので、これを終了させる際、今は、このタスクマネージャでプロセスを選択して、プロセス終了をしています。 これをMSDOSのプロンプトから、コマンドで実行できませんか。 たとえば、 Kill "イメージ名" などのように。 (これは適当に書いたので、このコマンドは間違っていますが) KILLしたいプロセスが複数あるので、バッチファイルにしてまとめてKILLしたいのです。 よろしくお願いします。

  • batファイルをアンダグラウンド実行した時の稼働確認

    batファイルをアンダグラウンド実行した時の稼働確認 os:windows xp aaaaa.batというバッチファイルをstartコマンドや、vbsなどからアンダーグラウンド実行した時、 aaaaa.batが稼働中かもう終了しているのかは、どうやって判断しますか? aaaaa.bat内になんらかのexeなどが動く時は、そのexeをタスクマネージャで捕捉できなくは無いですが、 dosコマンドベースで作成されたbatが、長時間、あるいはループした状態でバックグラウンド実行され、それを終了させる時などどうすれば良いですか?

  • フォルダ内のbatを全て実行

    Windows コマンドで、特定のフォルダ内にあるバッチファイル全てを順番に実行させることが出来ますか?

  • バッチファイルで実行ファイル同時実行

    こんにちは、 ある複数の実行ファイルを同時に起動させたく思い、 バッチファイルに実行ファイルを羅列したのですが、 調べたところNT系だと終了を待つ様です。 終了を待たずに次のコマンドに進み、実行後コマンドプロンプトを 閉じるまでを行う事は不可能なのでしょうか? よろしくお願いいたします。

  • batファイルの実行について

    batファイルを作成しました。 (ATコマンドにてスケジュールさせたいと考えてます。) ファイル自体をダブルクリックで実行すると正常に処理が完了しますが、コマンドプロンプトから実行しようとすると以下のエラーが発生します。 〓〓〓〓〓〓〓〓〓〓〓〓 C:\>cmd /c "E:\MirroringTool\SimpleFolderMirror\test.bat" 指定した名前は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されません。 〓〓〓〓〓〓〓〓〓〓〓〓 実行させたいbatファイルは以下のとおりです。 〓〓〓〓〓〓〓〓〓〓〓〓 echo off cls rem ↓SimpleFolderMirror.exeを解凍したフォルダ SET EXEFOLDER_PATH="E:\MirroringTool\SimpleFolderMirror\" rem ↓ログの出力フォルダ・ファイル SET LOG_DIR="E:\MirroringTool\SimpleFolderMirror\logs\" rem ↓ミラー元フォルダ1 SET COPY_FROM_PATH_01="S:\" rem ↓ミラー先フォルダ1 SET COPY_TO_PATH_01="E:\ORANT\OWS" cd %EXEFOLDER_PATH% SimpleFolderMirror.exe %COPY_FROM_PATH_01% %COPY_TO_PATH_01% > %LOG_DIR%logs.txt 〓〓〓〓〓〓〓〓〓〓〓〓 cd %EXEFOLDER_PATH%のところまでは処理は完了しているようなので、最後の行のところで発生しているようです。 何が原因でエラーが発生してしまっているのでしょうか? 宜しくお願い致します

  • バッチ(bat)の作り方を教えてください

    今、特定フォルダ内にあるファイル3つが存在すればコマンドを実行し、無ければ4時までループさせるといったことをバッチでしたいと考えております。 イメージは以下の通りです。 D:\a.txt,D:\b.txt,D:\c.txt バッチを1時から動かして、上記3つが揃えば、そこからコマンドを実行しバッチは終了 もしなければ10分置きにファイルをチェックし、4時を過ぎればバッチを終了(コマンドを実行させない)ということをしたいです。 コマンドは何でも良いので例えば「echo HELLO」とでもしておきます。 よろしくお願いいたします。

専門家に質問してみよう