3

次のような一連のコマンドがあります。

C:
cd Project
testproj.exe

私のシステムは、これらのコマンドをリモート システムから 1 つずつ取得します。リモートシステムからコマンドを受信したら、cmd.exe の各コマンドを実行する必要があります。.NET を使用してこれらを実行する方法は?

また、testproj.exe の結果をリモート マシンに返す必要もあります。コマンドを実行した後に結果を取得する方法は?

4

5 に答える 5

6

Process.Startcmd.exe を開き、StandardIn、StandardOut、および StandardError をフックします。次に、コマンドが入ってきたら、それを StandardIn に書き込み、戻り値として StandardOut/Error を読み取ります。全体で 15 LOC を超えてはなりません。

そうは言っても、Telnetサーバーをインストールするだけの方がおそらく簡単でしょう-それが本質的に複製しているように聞こえるからです....

于 2009-08-06T00:45:06.863 に答える
5
var process = System.Diagnostics.Process.Start( "testproj.exe" );
process.WaitForExit();
var result = process.ExitCode;

これは、"C:" や "CD パス" などを実際には尊重しません。代わりに、一時フォルダーにバッチ ファイルを作成してから、バッチ ファイルを呼び出します。

于 2009-08-06T00:08:29.437 に答える
4

System.Diagnostics.Processを見てください。stdout/stderr をどこかにリダイレクトして、出力を取得できます。

于 2009-08-06T00:07:58.173 に答える
1

C:およびcd Project操作は、 SetCurrentDirectoryメソッドを使用してDirectoryクラスを使用して、起動アプリケーション内で実行できます。

次に、Processクラスを使用してtestproj.exe実行可能ファイルを起動します。

于 2009-08-06T00:10:10.213 に答える