
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プログラムから「管理者として実行」したい
Visual Basic(VBA)
-
VB.NETでコマンドプロンプトの操作
Visual Basic(VBA)
-
-
4
C# Process.Startメソッドで複数引数を渡したい
その他(プログラミング・Web制作)
-
5
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
6
Webページ上のボタン等の位置を移動したい。
Microsoft ASP
-
7
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
8
コンソールアプリケーションのコマンドプロンプト画面を非表示
Visual Basic(VBA)
-
9
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
12
【VB.NET】コマンドプロンプトの操作について
Visual Basic(VBA)
-
13
フォームを画面のど真ん中に表示させたいのですが
Visual Basic(VBA)
-
14
c#でコマンドプロンプトを実行する方法
その他(プログラミング・Web制作)
-
15
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
16
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
-
17
VB.netでメソッドからコントロールを取得
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
batファイルで立ち上げたaplを...
-
c#でコマンドプロンプトを実行...
-
複数の処理の終了を待ちたい
-
バッチファイルからftpを実行時...
-
EXCELをバッチコマンドで...
-
VB.NETでDOSコマンドの複数実行
-
stable diffusionのインストー...
-
バッチファイル アプリケーシ...
-
PL/SQLで作成したストア...
-
バッチファイルでの時間差実行
-
【VB.NET】コマンドプロンプト...
-
ExcelVBAにてアプリをタスクマ...
-
バッチへ値を返す
-
ショートカットの作成とコピー
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
-
コマンドプロンプトで作成日時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
ExcelVBAにてアプリをタスクマ...
-
UWSCについて
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
バッチへ値を返す
-
gccがコマンドプロンプト上で使...
-
CreateProcessの制御について
-
64bitのwindowsサーバーで32bit...
-
stable diffusionのインストー...
-
プログラムを実行すると、なぜ...
-
VB.NETでコマンドプロンプトの操作
-
Visual basic6.0からショートカ...
-
バッチファイルからftpを実行時...
-
ASPからのEXEファイル起動
-
パスの件
-
VBSでコマンドプロンプトのカレ...
おすすめ情報