DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DOSコマンド実行 StandardInput.WriteLineでの待機

環境/言語:[vB.NET]
分類:[.NET]

vb.netで複数のDOSコマンドを実行しています。

p = New Process
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.RedirectStandardInput = True
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.StartInfo.UseShellExecute = False
p.StandardInput.WriteLine(コマンドA)
p.StandardInput.WriteLine(コマンドB)
p.StandardInput.WriteLine(コマンドC)




上記の用にStandardInput.WriteLineを用いて多数のコマンドを実行しています。

コマンドAが終わった後にコマンドBといった形で処理がおわったら順番に実行したいのですが、処理が終わる前に次のコマンドを実行しているらしく、処理がうまくいきません。
StandardInput.WriteLineで実行したコマンドが終了するまで待機するといったことはできませんか?

ご教授願います。

(ちなみに、コマンドの間に数秒スリープするコードを実装するとうまくいきました。)
■No23068に返信(一休さんの記事)
> StandardInput.WriteLineで実行したコマンドが終了するまで待機するといったことはできませんか?
>

コマンドの内容が分からないので、あれですが
StandardInputの替わりに、バッチファイル(*.bat)を作成して、
バッチを実行したらどうでしょうか?
■No23074に返信(やじゅさんの記事)
> ■No23068に返信(一休さんの記事)
>>StandardInput.WriteLineで実行したコマンドが終了するまで待機するといったことはできませんか?
>>
>
> コマンドの内容が分からないので、あれですが
> StandardInputの替わりに、バッチファイル(*.bat)を作成して、
> バッチを実行したらどうでしょうか?


やじゅ様 ご回答ありがとうございます。
バッチファイルを作成して実行する方法でうまくいきました!

ちなみにコマンドは動的に作成しています。
なので、
動的に作成したコマンドを一度、テキストに書き込み、実行するといった方法を取りました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板