![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VB.NETでバッチファイルを使わずにDOSコマンドの複数実行をしたいのですが、
試しに
Dim results As String
'ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
'出力を読み取れるようにする
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.UseShellExecute = False
'ウィンドウを表示しないようにする
psi.CreateNoWindow = True
'コマンドラインを指定("/c"は実行後閉じるために必要)
'psi.Arguments = "/c " & asCmd & " /w"
psi.Arguments = "/c " & "CD C:\" & " /w"
'起動
p = System.Diagnostics.Process.Start(psi)
'出力を読み取る
results = p.StandardOutput.ReadToEnd
'出力された結果を表示
Console.WriteLine(results)
psi.Arguments = "/c " & "DIR" & " /w"
'起動
p = System.Diagnostics.Process.Start(psi)
'出力を読み取る
results = p.StandardOutput.ReadToEnd
'出力された結果を表示
Console.WriteLine(results)
'WaitForExitはReadToEndの後である必要がある
'(親プロセス、子プロセスでブロック防止のため)
p.WaitForExit()
というプログラムを作成したのですが、DIRは実行されるのですが、
Cドライブに移動ができません。
何が悪いのでしょうか?
実現できる方法があればご教授ください。
No.1ベストアンサー
- 回答日時:
原因は最初に起動したプロセスが CD C:\ を実行して終了してしまうためです
2度目のに起動された cmd.exe(またはcommand.com)は初期状態で起動されてしまいます
したがってDIRコマンドは意図したフォルダーで実行されません
DOSコマンドを複数実行したいなら &&でつなぎましょう
psi.Arguments = "/c " & "CD C:\" & " && dir /w"
といった具合です
デバッグ段階では
psi.CreateNoWindow = False
のようにドス窓を表示するようにしていた方がいいように思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】甲子園での思い出の残し方
「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
VB.NETでコマンドプロンプトの操作
Visual Basic(VBA)
-
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
-
4
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
5
VBフォームアプリケーションにおけるcmdプロンプトの実行
Visual Basic(VBA)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
C#でのbatファイル実行結果取得
その他(プログラミング・Web制作)
-
8
c#でコマンドプロンプトを実行する方法
その他(プログラミング・Web制作)
-
9
LAN内接続マシン数及びIP、マシン名の表示について
Visual Basic(VBA)
-
10
C# Process.Startメソッドで複数引数を渡したい
その他(プログラミング・Web制作)
-
11
テキストファイルクリア .net2005 VB
Visual Basic(VBA)
-
12
コマンドプロンプトから別マシンに命令を投げれるでしょうか
UNIX・Linux
-
13
VBプログラムから「管理者として実行」したい
Visual Basic(VBA)
-
14
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
15
コマンドプロンプトを指定のディレクトリで開く
Visual Basic(VBA)
-
16
Visual Studio 「AnyCpu」について
C言語・C++・C#
-
17
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
-
18
[VB.net] DataGridViewの列ヘッダー複数行表示に伴う不具合?について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exe間での引き値の受け取り方法
-
バッチファイル 特定ウインドウ...
-
UWSCについて
-
ExcelVBAにてアプリをタスクマ...
-
PL/SQLで作成したストア...
-
stable diffusionのインストー...
-
WSHで空白を含んだコマンドの指...
-
Windows版のEmacsのインストール
-
c#でコマンドプロンプトを実行...
-
DXライブラリで作ったソフトが...
-
C&C++からC#のexeを呼ぶ方法
-
バッチファイルからftpを実行時...
-
VB.NETでDOSコマンドの複数実行
-
gccがコマンドプロンプト上で使...
-
VBSでコマンドプロンプトのカレ...
-
CreateShortCut 環境変数のまま...
-
EXCELをバッチコマンドで...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
ショートカットの作成とコピー
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
プログラムを実行すると、なぜ...
-
VB.NETでコマンドプロンプトの操作
-
VBAからキャッシュを削除する方...
-
ASPからのEXEファイル起動
-
Shiftキーを押しながら起動
-
stable diffusionのインストー...
-
バッチファイルでAPを終了さ...
-
PL/SQLで作成したストア...
-
Visual basic6.0からショートカ...
-
C#でMediaPlayerを立ち上げた後
-
c#でコマンドプロンプトを実行...
-
64bitのwindowsサーバーで32bit...
-
gccがコマンドプロンプト上で使...
-
バッチへ値を返す
おすすめ情報