【问题标题】:run multiple shell commands one by one in c#在c#中一个一个地运行多个shell命令
【发布时间】:2013-03-27 16:00:10
【问题描述】:

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

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

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

提前谢谢...

【问题讨论】:

标签: c# shell cmd command dos


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 2012-09-20
      相关资源
      最近更新 更多