![](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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- スポーツサイクル フレンチバルブの空気入れについて 4 2023/07/03 17:22
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
VB.NETでコマンドプロンプトの操作
Visual Basic(VBA)
-
C#でのbatファイル実行結果取得
その他(プログラミング・Web制作)
-
-
4
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
5
VBフォームアプリケーションにおけるcmdプロンプトの実行
Visual Basic(VBA)
-
6
C# Process.Startメソッドで複数引数を渡したい
その他(プログラミング・Web制作)
-
7
コマンドプロンプトを指定のディレクトリで開く
Visual Basic(VBA)
-
8
c#でコマンドプロンプトを実行する方法
その他(プログラミング・Web制作)
-
9
[VB.net] DataGridViewの列ヘッダー複数行表示に伴う不具合?について
Visual Basic(VBA)
-
10
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
11
Viewにインデックスは張れますか?
Oracle
-
12
ワークテーブルの作成について
Visual Basic(VBA)
-
13
コマンドプロンプトから別マシンに命令を投げれるでしょうか
UNIX・Linux
-
14
オブジェクト参照がオブジェクト インスタンスに設定されていません というエラーについて
Microsoft ASP
-
15
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
16
CloseとDisposeの違い
Visual Basic(VBA)
-
17
VBプログラムから「管理者として実行」したい
Visual Basic(VBA)
-
18
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
バッチファイル、順番を指定し...
-
eclipseのエラーに関する質問で...
-
EXCELをバッチコマンドで...
-
vbsのショートカット作成で、引...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトのエラーに...
-
binファイルを解凍したいの...
-
Thunderbirdで社内共有フォルダ...
-
PCのアプリケーションを別のPC...
-
バッチ終了時にDOS窓を閉じるコ...
-
ファイルのサイズを0にする or ...
-
ファイル名にドットを使ったフ...
-
exeファイルの中身を見る方法は...
-
コマンドプロンプトの「%1」と...
-
ImgBurnでの書き込み時
-
CSSを1ページに1枚作るのって変...
-
Windows System32 Security Hea...
-
ビルダーを使ってますがパソコ...
-
Python CSVファイルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
stable diffusionのインストー...
-
batファイルで立ち上げたaplを...
-
ショートカットの作成とコピー
-
exe間での引き値の受け取り方法
-
VB.NETでDOSコマンドの複数実行
-
バッチファイル実行時に起動す...
-
VB.NETでコマンドプロンプトの操作
-
プログラムを実行すると、なぜ...
-
c#でコマンドプロンプトを実行...
-
gccがコマンドプロンプト上で使...
-
VBAからキャッシュを削除する方...
-
64bitのwindowsサーバーで32bit...
-
UWSCについて
-
ショートカットのリンク先が参...
-
バッチファイルからftpを実行時...
-
Shiftキーを押しながら起動
-
batからvbs起動
おすすめ情報