C# 如何在这段代码中同时传递多个命令
我试图从本地文件夹运行cmd,希望同时传递多个命令,例如:一旦我能够运行这个命令,p.StandardInput.WriteLine(“multichain util create chain34”);执行此命令后,我希望传递此命令p.StandardInput.WriteLine(“multichai cli chain 34-daemon”)C# 如何在这段代码中同时传递多个命令,c#,C#,我试图从本地文件夹运行cmd,希望同时传递多个命令,例如:一旦我能够运行这个命令,p.StandardInput.WriteLine(“multichain util create chain34”);执行此命令后,我希望传递此命令p.StandardInput.WriteLine(“multichai cli chain 34-daemon”) 将所有与流程相关的内容移动到方法中。将命令列表作为该命令的参数。然后,迭代命令列表并将其全部写入,而不是一个p.StandardInput.Write
将所有与流程相关的内容移动到方法中。将命令列表作为该命令的参数。然后,迭代命令列表并将其全部写入,而不是一个
p.StandardInput.WriteLine()
static void Main()
{
var commands = new List<string>() { "dir", "mkdir ABC", "dir" };
ExecuteCmd(commands);
Console.ReadLine();
}
static void ExecuteCmd(List<string> commands)
{
Process p = new Process();
p.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
foreach (var comm in commands)
p.StandardInput.WriteLine(comm);
p.StandardInput.Flush();
p.StandardInput.Close();
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());
}
static void Main()
{
var commands=newlist(){“dir”、“mkdir ABC”、“dir”};
ExecuteCmd(命令);
Console.ReadLine();
}
静态void ExecuteCmd(列表命令)
{
过程p=新过程();
p、 StartInfo.WorkingDirectory=Directory.GetCurrentDirectory();
p、 StartInfo.FileName=“cmd.exe”;
p、 StartInfo.CreateNoWindow=true;
p、 StartInfo.RedirectStandardInput=true;
p、 StartInfo.RedirectStandardOutput=true;
p、 StartInfo.UseShellExecute=false;
p、 Start();
foreach(命令中的var comm)
p、 标准输入写入线(comm);
p、 StandardInput.Flush();
p、 StandardInput.Close();
p、 WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());
}
请澄清“同时执行多个命令”的含义。一旦我能够运行此命令,请使用p.StandardInput.WriteLine(“multichain util create chain34”);我想传递这个命令p.StandardInput.WriteLine(“multichai cli chain 34-daemon”);如果我理解正确(可能没有),我会跳过cmd.exe,直接一个接一个地运行多链可执行文件。multichain API有点网络包装器,但我找不到multichain util提供的功能。
static void Main()
{
var commands = new List<string>() { "dir", "mkdir ABC", "dir" };
ExecuteCmd(commands);
Console.ReadLine();
}
static void ExecuteCmd(List<string> commands)
{
Process p = new Process();
p.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
foreach (var comm in commands)
p.StandardInput.WriteLine(comm);
p.StandardInput.Flush();
p.StandardInput.Close();
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());
}