C# 在cmd中执行couple命令。只执行一个命令
哎呀。在我的“管道”中,有3个命令应该按顺序执行,每个请求必须等到上一个命令结束。现在我已经完成了第一个请求,但是第二个和第三个请求只是跳过了。。。 你能建议如何改变这个“管道”吗C# 在cmd中执行couple命令。只执行一个命令,c#,cmd,C#,Cmd,哎呀。在我的“管道”中,有3个命令应该按顺序执行,每个请求必须等到上一个命令结束。现在我已经完成了第一个请求,但是第二个和第三个请求只是跳过了。。。 你能建议如何改变这个“管道”吗 string strCmdText = s1; var startInfo = new ProcessStartInfo { FileName = "cmd.exe", RedirectStandardInput = true, RedirectStandardOutput = true,
string strCmdText = s1;
var startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = new Process { StartInfo = startInfo };
process.Start();
process.StandardInput.WriteLine(strCmdText);
process.WaitForExit();
string strCmdText1 = s2;
process.StandardInput.WriteLine(strCmdText1);
process.WaitForExit();
string strCmdText2 = s3;
process.StandardInput.WriteLine(strCmdText2);
process.StandardInput.WriteLine("exit");
谢谢。让我们看看您的代码:
- 启动
的实例:cmd.exe
var process = new Process { StartInfo = startInfo }; process.Start();
- 将命令写入其标准输入:
process.StandardInput.WriteLine(strCmdText);
string strCmdText1 = s2; process.StandardInput.WriteLine(strCmdText1);
- 然后等待
退出:cmd.exe
process.WaitForExit();
- 现在,将另一个命令写入其标准输入:
process.StandardInput.WriteLine(strCmdText);
string strCmdText1 = s2; process.StandardInput.WriteLine(strCmdText1);
- 等等,什么?
已在上一步退出,因此您首先无法向其发送命令cmd.exe
- 然后等待进程退出,但它早就死了:
process.WaitForExit();
- 重复相同的非工作代码:
string strCmdText2 = s3; process.StandardInput.WriteLine(strCmdText2); process.StandardInput.WriteLine("exit");
cmd.exe
将退出
有几件事你可以试试:
- 完全去掉
。除非执行某些批处理脚本,否则可以直接调用预期的可执行文件(如cmd.exe
)python.exe
- 为3个命令启动3个不同的
cmd.exe
- 尝试将一些参数传递给
,如cmd.exe
/Q
首先,尝试第一种方法,它是最干净的。首先,为什么要使用cmd,其次,什么“不起作用”?只需检查代码,一切工作都很顺利。当我编写有意义的代码时,它工作得很好。注意,在您的示例中,在继续编写新命令之前调用
WaitForExit()
。当我尝试这样做时,我永远无法进入下一个命令;在调用WaitForExit()
时,它仍然处于停滞状态。如果您需要帮助,请提供一个好的代码示例和一个具体的描述,说明您正在尝试做什么,发生了什么,以及这与您想要的有什么不同。请看和@PeterDuniho ok。对不起,我没有提供一个不完整的问题。我有3个命令应该按顺序执行,每个请求必须等到上一个命令结束。现在我已经完成了第一个请求,但是第二个和第三个请求只是跳过了…“它不工作”不是问题描述。如果你不明白为什么,打电话给房屋维修承包商,说“我的水管坏了。这是我房子的照片。出了什么问题,修理它要花多少钱?”然后看看你是否在没有更多信息的情况下得到了估计。