启动命令窗口并在其中运行命令

use*_*148 11 c# command-line

我需要用一些参数启动命令窗口并在里面运行更多命令.

例如,启动test.cmd并运行mkdir.

我可以使用processstartinfo启动test.cmd,但我不确定如何运行更多命令.我可以将更多参数传递给test.cmd进程吗?

我该怎么做?

无法添加评论来回答...所以写在这里.

安德里亚,这就是我想要的.但是上面的代码对我来说不起作用.

我正在启动一个test.cmd,这是一个新的命令环境(比如razzle构建环境),我需要运行更多的命令.

psi.FileName = @"c:\test.cmd";
psi.Arguments = @"arg0 arg1 arg2";

psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;
psi.UseShellExecute = false;

Process p = new Process();
p.StartInfo = psi;
p.Start();
p.StandardInput.WriteLine(@"dir>c:\results.txt");
p.StandardInput.WriteLine(@"dir>c:\results2.txt"); 
Run Code Online (Sandbox Code Playgroud)

And*_*odi 13

您可以使用进程标准输入将更多命令发送到cmd.exe.你必须以这种方式重定向它:

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(@"dir>c:\results.txt");
process.StandardInput.WriteLine(@"dir>c:\results2.txt");
process.StandardInput.WriteLine("exit");

process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

请记住将"exit"写为最后一个命令,否则cmd进程无法正确终止...