- - PR -
バッチファイルの起動について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-03 22:18
こんばんは。
今回はバッチファイルの起動について質問です。 「C:\Program Files\Microsoft Office\Office10\MSACCESS.EXE" "C:\XXXX\BAT\KhssnIF.mdb" /CMD 01」 といった内容のバッチで引数「01」を.mdbファイルに渡し 起動させるといったものです。 「Shell」はEXEファイルのみ有効と考えております。 (見たり聞いたりの情報ですが) よって、「Prcess」を使おうと思うのですが BETファイルは動くのでしょうか? 直接mdbファイルを「Prcess」で起動しても良いかとは思うのですが、 引数は渡すことができるのしょうか? ご存知の方宜しくお願い致します。 | ||||
|
投稿日時: 2003-12-04 11:15
こんにちは。。
前のスレッドをみて、説明不足だったこと感じ書き直します。 ASP.NETでバッチファイルを起動したいです。 (WINDOWS2000Pro) バッチファイルの内容は "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\XXXX\BAT\KhssnIF.mdb" /CMD 01 といった内容のバッチで引数「01」をKhssnIF.mdbファイルに渡し 起動させるといったものです。 Dim myprocess As New Process myprocess.StartInfo.FileName = "C:\XXXX\BAT\KhssnIF(01).bat" myprocess.Start() とやってみたものの、PGを起動したところmdbファイルを開くことができなくなりました。 (システムエラーまたはメモリ不足のため) あと、mdbファイルを直接引数を渡し、起動することも試みました。 Dim intSCatch As String intSCatch = Shell("CMD /01""Start C:\XXXX\BAT\KhssnIF.mdb""") とか Dim intSCatch As String intSCatch = Shell("C:\Program Files\Microsoft Office\Office\MSACCESS.EXE""C:\XXXX\BAT\KhssnIF.mdb""/CMD 01") いろいろやってみたものの、惨敗です。 ご存知の方宜しくお願い致します。 | ||||
|
投稿日時: 2003-12-04 11:45
Process.StartInfo.Argumentsプロパティを試してみて下さい。
ちなみに、ランチャーを開発したことがありますが、その時にexeもbatファイルもProcessで起動しています。 | ||||
|
投稿日時: 2003-12-04 11:59
二天さん、早速の返事ありがとうございます。
Process.StartInfo.Argumentsというのは引数を渡すものですよね? ていうこうとは Dim myprocess As New Process myprocess.StartInfo.FileName = "C:\XXXX\BAT\KhssnIF.mdb" myprocess.StartInfo.Arguments = "01" myprocess.Start() こんな感じで、mdbファイルに直接渡すことになると思います。 しかし、これを実行すると処理が終わらない状態になります。 (まるで永久ループのように) 何故?これで「システムエラーまたはメモリ不足のため」となると思われます。 ACCESSのPG側に変更が必要なのでしょうか? batファイルを起動する際は、batファイルに引数を渡すPGがあるので 必要ないと思われますが。。。 | ||||
|
投稿日時: 2003-12-04 12:36
> Process.StartInfo.Argumentsというのは引数を渡すものですよね?
> ていうこうとは > Dim myprocess As New Process > myprocess.StartInfo.FileName = "C:XXXXBATKhssnIF.mdb" > myprocess.StartInfo.Arguments = "01" > myprocess.Start() > こんな感じで、mdbファイルに直接渡すことになると思います。 > しかし、これを実行すると処理が終わらない状態になります。 > (まるで永久ループのように) > 何故?これで「システムエラーまたはメモリ不足のため」となると思われます。 > ACCESSのPG側に変更が必要なのでしょうか? そもそもmdbファイルに引数を渡せるものなのでしょうか? DOSプロンプトで試してみましたか? > batファイルを起動する際は、batファイルに引数を渡すPGがあるので > 必要ないと思われますが。。。 必要あるなしについてはわかりません。「batファイルに引数を渡して起動する」ことを質問しているのであると判断して回答したまでです。 # せっかく時間を割いて回答したのに損をしたという気持ちになりました。 | ||||
|
投稿日時: 2003-12-04 12:57
二天さん、すみません。
私は 「BATファイルで引数を渡して起動する」と書いたつもりです。 m(__)m なので > batファイルを起動する際は、batファイルに引数を渡すPGがあるので > 必要ないと思われますが。。。 と書きました。 mdbファイルに引数を渡すと言う意味で以下のソースを書きましたが (二天さんのアドバイスを受けて) > Dim myprocess As New Process > myprocess.StartInfo.FileName = "C:XXXXBATKhssnIF.mdb" > myprocess.StartInfo.Arguments = "01" > myprocess.Start() これを実行すると処理が終わらない状態で困っているのですが。。。 (まるで永久ループのように) mdbファイル(VBA)で変更する必要があるのか伺ったつもりです。 質問・表現の仕方が悪くてすみません。 [ メッセージ編集済み 編集者: みのる 編集日時 2003-12-04 12:59 ] [ メッセージ編集済み 編集者: みのる 編集日時 2003-12-04 13:01 ] | ||||
|
投稿日時: 2003-12-04 13:04
みのるさん、こんにちは。
↓ここ見ました? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7874&forum=7&3 | ||||
|
投稿日時: 2003-12-04 13:14
mdbファイルって、Accessが作るファイルじゃないんですか?バッチファイルの拡張子はBATですよ。これ以外はダメ(Unixなら良いけど)。 おそらく、WindowsはAccessにそのファイルを読ませようとしていると思われます。 |
1|2|3
次のページへ»