- - PR -
DTS ActiveXからDOSコマンドを実行する方法について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-08 15:05
DTS絡みで矢継ぎ早に質問してしまって申し訳ありません。
DTSのActiveX(VBScript)からDOSコマンドを実行する方法 はありますでしょうか。 コマンド実行方法としては、「プロセス実行タスク」という 機能がDTSには用意されているのですが、コマンドに与える 引数を動的に変更したいため、この方法は諦めた次第です。 どなたかご存知でしたら、ご教授頂ければと思います。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-12-08 22:47
お疲れ様です。
ちょっとググってみたのですが、vbsでbatファイルを起動するということなら 下記のように記述すればバッチファイルを起動できるようです。 こちらでSQL Server の ActiveXスクリプトタスクでの実行も試してみましたが 上手く動きましたよ。 Function Main() Set WshShell = CreateObject("WScript.Shell") WshShell.Run """D:\test.bat""" Main = DTSTaskExecResult_Success End Function [ メッセージ編集済み 編集者: kiyoharu 編集日時 2005-12-08 23:08 ] | ||||||||
|
投稿日時: 2005-12-09 12:00
kiyoharuさん
情報有難うございました。 下記サイトの方法で試してみたのですが、どうもうまく実行されていない ようです。 テストでファイルに文字を書き出すDOSバッチを作成し、DTSのActiveXから 実行した所、ステータスは正常終了となるのですが、ファイルは作成 されていませんでした。 見かけ上はDOS窓が一瞬出て実行されているような感じなのですが・・・ 何か環境の違いがあるのでしょうか・・
| ||||||||
|
投稿日時: 2005-12-09 15:38
バッチの実行はできているようですね。
異常終了してるのに、ステータスをうまく拾えてないってことはないでしょうか? バッチの一番最後に PAUSE 入れて窓がすぐ閉じないようにしてみたらコケてるかどうか わかると思います。 DTSってどのユーザーアカウントで実行されるんでしたっけ??? ファイルを作成する権限がないとか・・・ そんなのとっくに試してるよって場合はごめんなさい<m(__)m> | ||||||||
|
投稿日時: 2005-12-09 17:54
かめたろさん
コメント有難うございました。
私も同じことを考えました。PAUSEを入れてもすぐにDOS窓は閉じてしまいます。 また、DTSはWindows認証モードで実行していますので、ファイルアクセス権限 は特に問題ないと思います。 残念ですが、「プロセス実行タスク」でコマンドを実行し、変数はファイルに 記述して渡すようにします・・(しょぼい作りですが) ご指摘有難うございました。 | ||||||||
|
投稿日時: 2005-12-11 11:40
お疲れ様です。 まず ■プロセス実行タスクでの動的なコマンドの変更について 「プロセス実行タスク」と「動的プロパティタスク」を組み合わせる または 「プロセス実行タスク」と「ActiveX スクリプトタスク」を組み合わせる ことで,実現できます。 具体的には, プロセス実行タスク(たとえば「DTSTask_DTSCreateProcessTask_1」)の 「ProcessCommandLine」プロパティを設定してあげることによって, 任意のプロセスを立ち上げることができます。 ■DOS 窓が落ちないように起動 こちらは,cmd.exe の起動をどう取り扱ったかに依存しますので, cmd.exe 内で実行される bat に PAUSE をかけても終了してしまいます。 cmd.exe のオプション「/C | /K」のどちらで起動するかによります。 たとえば,先ほどの「ProcessCommandLine」で 「(systemrootに差し替えて)\cmd.exe "cmd /K ping 127.0.0.1"」 という風に指定すれば, 「実行後に DOS 窓が閉じずに継続されます」 原理は同じで,VBS からも,ActiveX からも, 「起動したプロセスがどこまで同期して制御が終わるか?」 を気にしてあげてください。 ---------- TimberLandChapel.com Workshop http://blogs.timberlandchapel.com/blogs/workshop/archive/2005/12/06/519.aspx [ メッセージ編集済み 編集者: TLC 編集日時 2005-12-11 11:42 ] | ||||||||
|
投稿日時: 2005-12-11 12:16
TLCさん
情報ありがとうございました。
すみません。上記ActiveXスクリプトタスクを用いて動的にプロパティを割り当て るやり方はどこかのサイトに載っているでしょうか。 プロセス実行タスクを含んだパッケージをVisual Basicファイルに保存して中身 を見ると、上記キーワードは見受けられるのですが、ActiveXスクリプトタスクから 実行するやり方がよく分りません。
こちらもありがとうございます。ただ、DOS窓をあげることが目的 ではなく、1つ目のやりかたが実現できれば十分です。 お手数ですが情報よろしくお願い致します。 |
1