Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C运行命令shell#_C#_Command Line_System.diagnostics - Fatal编程技术网

C# 从C运行命令shell#

C# 从C运行命令shell#,c#,command-line,system.diagnostics,C#,Command Line,System.diagnostics,我想用下面的代码从C#运行一个命令,但应用程序会无限期地等待: System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "cmd.exe"; p.St

我想用下面的代码从C#运行一个命令,但应用程序会无限期地等待:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = command;
p.Start();
p.WaitForExit();
p.StandardOutput.ReadToEnd();
我进行了一次调试,最后传递的断点是
p.WaitForExit()
。我做错了什么?
顺便说一句,我尝试手动运行该命令,结果以毫秒为单位。

尝试在参数前加上a/C-如果没有它,cmd.exe将不会终止。

您的
命令是什么?它会自动关闭命令提示符吗?与其运行命令提示符来运行某个东西,不如直接运行该东西?@crashmstr这是什么意思?我想从C#运行命令,因为我需要自动执行人员。我的意思是,不要通过
cmd.exe
运行
command
,而是直接作为
文件名运行
command
(注意:这是假设
命令
是一个外部程序。如果不是,那么您可能想使用.Net来做等效的操作)。我包括
/C
currentlyHmm…听起来命令本身并没有终止-是需要显式退出的东西-比如diskpart或其他创建“环境”的命令对于执行?如果您通常在命令窗口中执行它,您可能看不到或感觉不到它缺少正常的终止-因为您可以自己关闭它。我建议添加/c,但实际上,它应该是预先设置的-也就是说,在命令文本可能值得在窗口显示的情况下运行它之前-看看您是否得到了在您的命令字符串中添加未预料到的内容-可能是导致某种提示的内容?