4


0

C#でcmdを実行し、同じウィンドウで次の別のコマンドを実行するにはどうすればよいですか?

まさに達成しようとしているのは、基本的にアクティブパーティションを1クリックで設定するプログラムであり、cmdプロンプトなどを使用する労力とスキルを節約できます。

System.Management名前空間を調べましたが、使用方法がわかりませんでした:(

だから私はCMDを使用して、C#で書かれたモジュールアプリケーションを手に入れ、基本的に「DISKPART」を実行してcmdウィンドウでdiskpartを起動し、次に「Select disk 0」に続いて尋ねます「パーティション1を選択」、最後に「アクティブ」が続きます。

CMDでこれを行うことはうまくいきますが、アプリケーションでは厄介であることが証明されています:コードの一部ですが、新しいウィンドウがdiskpart cmdを実行していないため、動作しません> :(

助言がありますか?

ありがとうございます。

Ash

4 Answer


3


出力に関する決定を行っていない限り、C#アプリでバッチファイルを作成し、 `Process.Start(…​)`でバッチファイルを開始できます。

2つのファイルを生成する必要があります。

最初の* runDiskPart.bat *:

diskpart /s myScript.dp

2番目の* myScript.dp *:

...some commands...
exit

明らかに名前は完全に任意ですが、 `/ s`ディレクティブは2番目のファイルの名前を参照する必要があります。


3


いくつかの検索の後、スクリプトファイルを使用して目的の操作を実行できると思います。 thisをお読みください。

したがって、必要なコマンドで「script.txt」ファイルを作成した後、「Process.Start」で「diskpart / s script.txt」を実行できます。


0


Thread.Sleep(1000)などの遅延を導入して、他のプロセスが最初のコマンドを完了する時間を確保するのはどうですか?


0


本当にやりたいことは、プログラムが終了するのを待ってから、次の呼び出しに移ることです。 このhttps://stackoverflow.com/questions/611094/async-process-start-and-wait-for-it-to-finish[question]をご覧ください。