我想从c#运行多个shell命令。我已经尝试Process.Start("");
但它会为每个命令打开新实例。我也尝试ProcessStartInfo
与StreamWriter
(ref.),但它对我不起作用。我想从我的c#应用程序中执行以下shell命令。
timeout 10
taskkill /F /IM "v*"
taskkill /F /IM "B*"
timeout 5
shutdown /f /p
如何从我的c#应用程序中逐个运行这些命令?
提前致谢...
答案 0 :(得分:3)
尝试Process.StartInfo.CreateNoWindow
和Process.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();
}
答案 1 :(得分:2)
创建CMD文件并运行它可能是最简单的选择。
旁注:shutdown /f /t 30
可能是一个更简单的命令。