在c#中逐一运行多个shell命令

本文关键字:shell 命令 运行 | 更新日期: 2023-09-27 18:06:12

我想从c#运行多个shell命令。我尝试过Process.Start("");,但它为每个命令打开新的实例。我也尝试过ProcessStartInfoStreamWriter(参考),但它不适合我。我想从我的c#应用程序中执行以下shell命令。

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

如何从我的c#应用程序一个接一个地运行这些命令?

在c#中逐一运行多个shell命令

试试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)

来消除"timeout"命令

下面是一些帮助你开始的代码:

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();
}

创建CMD文件并运行它可能是最简单的选择。

旁注:shutdown /f /t 30可能是一个更简单的命令。