1

C# から複数のシェル コマンドを実行したい。試してみましProcess.Start("");たが、コマンドごとに新しいインスタンスが開きます。私も(ref。)ProcessStartInfoで試しましたが、うまくいきません。C# アプリケーションから次のシェル コマンドを実行したいと考えています。StreamWriter

timeout 10
taskkill /F /IM "v*"
taskkill /F /IM "B*"
timeout 5
shutdown /f /p

これらのコマンドを C# アプリケーションから 1 つずつ実行するにはどうすればよいですか?

前もって感謝します...

4

2 に答える 2

3

試してみProcess.StartInfo.CreateNoWindowProcess.WaitForExit()

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx

http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx

次のようにして、「タイムアウト」コマンドを排除することもできますSystem.Threading.Thread.Sleep(5000)

開始するためのコードを次に示します。

static void Main(string[] args)
{
    System.Threading.Thread.Sleep(10000);
    ExecuteCommandAndWait("taskkill", "/F /IM \"v*\"");
    ExecuteCommandAndWait("taskkill","/F /IM \"B*\"");
    System.Threading.Thread.Sleep(5000);
    ExecuteCommandAndWait("shutdown", "/f /p");
}

private static void ExecuteCommandAndWait(string fileName, string arguments)
{
    Process process = new Process();
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.FileName = fileName;
    process.StartInfo.Arguments = arguments;
    process.Start();
    process.WaitForExit();
}
于 2013-03-27T16:08:58.843 に答える
2

CMD ファイルを作成して実行するのが、おそらく最も簡単なオプションです。

補足:shutdown /f /t 30コマンドの方が簡単かもしれません。

于 2013-03-27T16:03:02.653 に答える