【发布时间】:2010-09-01 07:53:23
【问题描述】:
我需要用一些参数启动命令窗口并在里面运行更多命令。
例如,启动 test.cmd 并运行 mkdir。
我可以使用 processstartinfo 启动 test.cmd,但我不确定如何运行更多命令。我可以将更多参数传递给 test.cmd 进程吗?
我该怎么做?
无法添加 cmets 来回答...所以写在这里。
安德里亚,这就是我要找的。但是上面的代码对我不起作用。
我正在启动一个 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");
【问题讨论】:
-
我认为您必须将 psi.FileName 和 psi.Arguments 保留在我的代码中,然后执行 p.StandardInput.WriteLine(@"c:\test.cmd arg0 arg1 arg2");
-
谢谢,我试过了,它奏效了。但是,有了这个,我试图读取控制台日志,它不返回我需要的输出。这是我用于澄清的完整代码。我期待的是 command123 的输出。
-
进程 p = new Process(); p.StartInfo = psi; p.Start(); p.StandardInput.WriteLine(@"c:\test.cmd arg1 arg2 && cd /d c:\testdir\sample && command123 /c"); p.StandardInput.WriteLine(@"exit");字符串输出 = p.StandardOutput.ReadToEnd(); p.WaitForExit();
-
我得到的输出是上面在控制台中运行的命令。如何获得 command123 的输出?
标签: c# command-line