• 締切済み

ASP(.NETではない)で2つの指定日時にバッチファイルを実行する

ASP(.NETではない)で2つの指定日時にバッチファイルを実行する 先日急にASP(.NETではない)でプログラム作成を担当することになったのですが、 ASPの経験が全くないため、以下のような処理を自動的に行うプログラムを ASPで作成可能かどうか、お知恵をお借りしたく思っております。 目的:緊急時において、自動的にあらかじめ指定した日時にONLINE接続をOFFにし、    指定した日時にONにしたい。 プログラム処理内容 1.SQLServerのテーブルから2つの指定日時のデータを読み込む(SQL)  (例: Aデータ「2010/09/22 20:00:00」(ONLINE停止)と      Bデータ「2010/09/27 06:30:00」(ONLINE開始)とします) 2.システム日時を取得する 3.Aデータと2.のシステム日時が一致するか判別する(IF文)   一致するときはバッチファイルAを実行させる   (DBのあるテーブルの接続フラグをOFFに変更する)   一致しないときは処理なし 4.Bデータと2.のシステム日時が一致するか判別する(IF文)   一致するときはバッチファイルBを実行させる   (DBのあるテーブルの接続フラグをONに変更する)   一致しないときは処理なし 1~4の単体機能としてのコードは本やネットなどでサンプルが見受けられますが、 不明に感じているのが、 市販のジョブタスク管理ソフトで日次・月次バッチが実行されるように、 ASPで作成したプログラムは、自動的にAデータの日時になるとバッチAを実行させ、 その次にBデータの日時になるとバッチBを実行させるものなのでしょうか? 市販のジョブタスク管理ソフトなどを導入することは難しいため、なんとかプログラムを 組んで対応したい状況です。 よろしくお願いいたします。

みんなの回答

noname#259269
noname#259269
回答No.1

ASP は関係ないのでは? いまいち状況が理解できません。 ASP はブラウザからユーザのリクエストによって動くものですから、定期監視する用途で使うものではないでしょう。もちろん、JavaScript でポーリングする事は可能ですが。。。 タスクスケジューラと VBScript で組めばよいように思います。

misopii
質問者

お礼

→edp3142さん ご指摘いただきました方法をもとに、タスクスケジューラへ作成したスクリプトファイルを組み込むことで無事対応するに至りました。 ありがとうございました。

関連するQ&A

  • ASPをバッチ風に起動

    今ASPからバッチを起動しようとしています。 Shelコマンドでbatを起動しようと思ったのですが、セキュリティとの問題があり、その処理のみを行うASP(画面表示無し)を作成しバッチASPとして処理を実行させていたます。 その際、メインの画面はバッチASPを呼び出すだけなのですが(window.openでバッチASPを呼び出す)、バッチASPが重い処理を行っているとメインのASPも実行がされなくなってしまいます。(待ち状態) バッチASPではADOでトランザクションを行いSQLを発効しています。 またメインASPではDBから時間を取得するだけのSQLを発効しています。 本来メインASPはバッチASPを呼び出すのみでバッチASPが重い処理を行っても依存しないと思っていますがどのようにすれば、依存しないようになるのでしょうか? 説明が難しいのですが、よろしくお願いします。

  • バッチより実行されるSQLについて

    あるバッチファイルからSQL文を実行します。 SQLの内容を簡単に申し上げますと テーブルAにレコードが1件存在したときは、 テーブルBを削除する。 テーブルAにレコードが2件存在したときは、 何もしない。 バッチファイルには、後続の処理もあるのですが 割愛します。 ここで質問なのですが、レコードが2件存在した とき、バッチの後続処理を実行させずに、そこで 処理終了とさせたいのですが、方法はあります でしょうか? SQL内でバッチのエラーレベルのようなものを 渡せたら、解決できそうなのですが、方法が わかりません。 説明があいまいでわかりにくいかもしれませんが 何か方法がありましたら、教えてください。

  • バッチプログラムでSQLSever2008を操作

    教えてください。 (1) SQLSever2008内にあるデータベース1のテーブルAのデータを削除 (2) 同じインスタンス内にあるデータベース2のテーブルAのデータを、DB1のテーブルAにコピー (3) (2)の処理が失敗したらロールバック 上記のことを、バッチプログラムで行いたいと思っております。 単にコマンドプロンプトで入力するというのであれば(1)も(2)もできるのですが、 バッチプログラムで行うとなると、どうやっていいのか見当もつきません。 さらに(3)は、(2)でSQLを実行した戻り値も見なければならないと思います。 データベース1のテーブルAとデータベース2のテーブルAはまったく同じ構成です。 自分なりに色々調べてはいるのですがどうしてもわかりません。 もしどなたかご存知の方がいらっしゃったらぜひ教えてください。 どうぞよろしくお願いいたします。

  • ショッピングカートのASPで配送日時指定可能なもの

    ショッピングカートのASPサービスをいろいろ探しているのですが、配送日時設定について以下の要件を全て満たすものを見つけられずにおります。これらを満たすASPサービスはないでしょうか? ・購入後3日~10日を指定できる(配送日時指定) <= これは割とある ・指定期間内に土日祝日(店舗のお休みという意味で)が含まれる場合、自動で加算される <= これがなかなか無い 例) 金曜に購入した場合3日後は翌週月曜日になりますが、土日を挟むので最短の指定が翌週水曜日になる、ということです。 なお、以下のような回答はご遠慮下さい。 ・条件を満たすショッピングカートCGIプログラムの情報  => ASPを探していますので ・最短指定を7日とかにしたらいいのではないか、といったご意見  => 最もなアイデアなのですが、今回は情報の収集ですので 宜しくお願いします。

  • バッチファイルを実行するとエラーが出る

    win2000を利用しています。起動時に自動的にアプリケーションを実行させるバッチファイルを作りたいのですがエラーがでます。 以下のように書いています。このバッチファイルをスタートアップに入れて実行させたいと思っています。 そして試しに手動で実行してみると、構成ファイルが見つからない、パス名を確認してくださいと言ったいエラーが出ます。 パスが間違っているのかと思い、 「C:\Program Files\Internet Explorer\IEXPLORE.EXE」だけをファイル名を指定して実行をするとちゃんとIEが起動します。 何が間違っているのかわからないのですが、ヒントだけでもお願いします。 test.bat(ファイル名) --------------------------- start C:\Program Files\Internet Explorer\IEXPLORE.EXE ---------------------------

  • DBのテーブル構成について

    テーブルA:承認が必要なデータが保存されます。 テーブルB:承認が完了したデータが保存されます。 承認処理はWebからオンライン処理で行います。 承認完了後、バッチ処理でテーブルBに内容をコピーします。 承認完了時の処理として、以下の2パターンのどちらにするかで悩んでいます。 1.テーブルAの完了フラグをONにする。   バッチ処理は、テーブルAの完了フラグがONのデータを対象とする。 2.新たにテーブルCを設け、承認完了したデータをコピーする。   バッチ処理は、テーブルCに存在するデータを対象とする。 1は、完了・未完了が混在するデータの中から完了データを抽出しますが テーブルAの完了フラグに索引をつけておけば気にする必要がないのでしょうか? 2は、存在するデータ全てが処理対象となる為、データの抽出は用意ですが その為だけのテーブルCを作るのもありなのでしょうか? なお、データ件数は最大で50万件程度を想定しています。

  • 指定したURLを表示させるバッチファイル

    IEが起動してない状態で、IEを起動させて指定したURLを表示させるバッチファイルを教えて下さい。 バッチファイルAを実行すると、○●○●○●というURLでIEが起動し、バッチファイルBを実行すると、△▲△▲△▲というURLでIEが起動する。そういうことです。 よろしくお願いします。

  • バッチファイルの同時起動を防ぎたい

    現在バッチファイルを二つ(A,B)作っております。 Aというバッチファイルを実行し完了するまで、Bというバッチファイルを実行させないようにしたいです。(逆も同様に) バッチの処理完了時間はA,B共に15秒~30秒程です。 いろいろと調べてみたのですがバッチの最初にロックファイルを作成し、実現しようかと思っています。(バッチ終了時にはロックファイルを消す処理も入れます。) また、ロックファイルを作成した後に意図せずwindowsが落ちた場合、ロックファイルが削除されず、ロックされたままになってしまう可能性もあると知りました。この場合ファイルのタイムスタンプを作成し、ロックファイルの更新日時と現在時刻の差分が1分以上ならば異常な処理があったとみなし、ロックファイルを削除をしようと考えています。 ここで質問なのですが、ロックファイルの作成はできたのですが、更新日時と現在時刻の差分をバッチで記述する方法がわかりません。調べはしたのですが、いまいちよくわからず。 どなたか、サイトまたはソースをご教授願います。 環境はwindows10です。

  • VBAから複数のバッチファイルを実行する際に、1つの処理が終了するまで

    VBAから複数のバッチファイルを実行する際に、1つの処理が終了するまで次の処理を待機させる方法について こんにちは。VBA初心者です。 Shell関数を使って複数のバッチを連続して実行するプログラムを書きたいのですが、前のバッチ処理が終了する前に次のバッチが実行されてしまいエラーになってしまいます。 1つのバッチ処理が終了するまで、次の処理を待機させるようなことは可能でしょうか。 具体的には、B列に「test_01.txt」「test_02.txt」... といったファイル名が入力されていて、隣のA列に何らかの文字/記号があった場合は、指定されたバッチ(ファイル名.bat)が実行されるということをやりたいと考えています。 以下のようなプログラムを書いてみましたが、実行するバッチが複数になるとうまくいきせん。 どうしたら問題を回避できるか、ご教示いただけないでしょうか。 よろしくお願いします。 Sub バッチを実行() i = 7 'リストの開始行 Const myPath As String = "D:\sample_batch\"   Const endPath As String = ".bat"  For i = 7 To 200 '7行目から200行目まで実行 If Cells(i, 1).Value <> "" Then Shell (myPath & Cells(i, 2).Value & endPath) End If Next End Sub

  • バッチファイルの実行方法

    Windows Server 2003で、Robocopy.exe(Resource KitToolsからインストールしたもの)の連続処理のために、下記のようなバッチファイル(.bat)を用意しました。 robocopy "D:\a" "F:\a" /E /copy:DT /NP /LOG:c:\robocopy.txt /TEE robocopy "D:\b" "F:\b" /E /copy:DT /NP /LOG+:c:\robocopy.txt /TEE .... コマンドの各行は間違っていないようです(cmd.exeに各行を打ち込んで実行すると正常に処理されます)。しかし.batをダブルクリックするとコマンドプロンプト画面内でバッチファイルの1行目がすごい勢いで流れるだけで、処理されません(コマンドプロンプトを強制終了するしかありません)。 最初は.batをダブルクリックすると正常に処理されていたのですが、急にこうなりました。なぜでしょうか? command.comから.batファイルを実行すると正常に処理されます。command.comから実行しないといけないものなのでしょうか? バッチファイルの拡張子を.batにするか、.comにするか関係があるでしょうか?