- PR -

VB.netアプリからDOSコマンドを利用したいのですが

1
投稿者投稿内容
mina
会議室デビュー日: 2003/11/01
投稿数: 7
投稿日時: 2004-12-06 23:21
お世話になります。
あるパッケージソフトのEXEでコマンドプロンプトやバッチファイルから以下の様に使用するものがありまして、
   C:\>SET A = AAAAA
   C:\>SET B = BBBBB
   C:\>SET C = CCCCC
   C:\>ZZZZZ.exe -s %A% -d %B%-%C%
のような感じです。

これをVB.netコンソールアプリから実行したいと考えています。
参照元記事を見ながら
   C:\>ZZZZZ.exe -s AAAAA -d BBBBB-CCCCC
というコマンドは発行でき、リダイレクト(?)結果も利用することができました。
そこで
   C:\>ZZZZZ.exe -s %A% -d %B%-%C%
の形(SET〜を使った形)でプログラムから実行さしたいのですが、
よくわかりません。
具体的には
参照元記事でいうと
コマンドライン指定のところで
   Dim A as String = AAAAA
   Dim B as String = BBBBB
   Dim C as String = CCCCC
   psi.Arguments = "/c ZZZZZ.exe %A% -d %B%-%C%"
とやっても %A%とかはそのままの文字列で渡されるみたいで
コマンドが正常に実行されません。
よってバッチファイルで書くような感じで
SET〜の変数の値もプログラムから指定できればいいなぁと考えています。

一応ShellとかWin32APIも調べてみましたが・・・;;
そもそも可能かどうか怪しいですが、
みなさんのご意見をお聞かせください。
つたない文章で申し訳ありません。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-12-06 23:45
諸農です。

引用:

コード:
   C:>SET A = AAAAA
   C:>SET B = BBBBB
   C:>SET C = CCCCC
   C:>ZZZZZ.exe -s %A% -d %B%-%C%



   psi.Arguments = "/c ZZZZZ.exe %A% -d %B%-%C%"
とやっても %A%とかはそのままの文字列で渡されるみたいで
コマンドが正常に実行されません。



んん?環境変数をセットしたいってことですか?
それとも変数で実行ファイルへのパラメータを渡したいってことなのかしら?
そのパラメータを環境変数から取得したいってことなのかしら?

何をしたいのかよく判らないのですが、SETコマンドを投入したいってことなら
最初の4行を改行文字で連結してからpsi.Argumentsにセットしてみるとか?
環境変数を取得したいってことでしたら、参照元記事に取得の方法は書いてありますよね?

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-12-07 07:20
msoです。

ちょっと便乗で質問させてください。
昨日の時点だったのですが、DosのSTARTコマンドを発行したいと
おもっていたのですが、できませんでした。

最初はShell関数を使えばいいのかな?って思ったのですが、
どうやってSTARTを実行させればいいのかわかりませんでした。
ご存じの方がいたらやり方を教えてください。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-12-07 11:06
msoさん、こんにちは。

引用:

昨日の時点だったのですが、DosのSTARTコマンドを発行したいと


試してませんが、/C オプション付きで CMD.EXE を呼び出せば、コマンドが使えるんじゃないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-12-07 18:48
msoさん>
Process.Start(string)でいいんじゃない?
引用:

文書またはアプリケーション ファイルの名前を指定してプロセス リソースを起動し



_________________
mina
会議室デビュー日: 2003/11/01
投稿数: 7
投稿日時: 2004-12-13 01:45
お世話になります。
いろいろ試してみましたが、以下の方法で
いくことにしました。
1.毎回最初にバッチファイルを作成する。
  具体的にはC:>ZZZZZ.exe -s %A% -d %B%-%C%
  をバッチファイルに書き出す。パラメタの部分は日時などなので毎回変更されます。
2.次に
  psi.Arguments = "/c XXXXX.bat"
  でバッチファイルを実行し、
  その結果をもらう
という方法でなんとかいけそうです。
みなさんご意見ありがとうございました。今後ともよろしくお願いします。

1

スキルアップ/キャリアアップ(JOB@IT)