我需要用一些参数启动命令窗口并在其中运行更多命令。启动命令窗口并在里面运行命令
例如,启动test.cmd并运行mkdir。
我可以用processstartinfo启动test.cmd,但我不知道如何运行更多的命令。我可以将更多参数传递给test.cmd进程吗?
我该如何解决这个问题?
无法添加评论来回答...所以写在这里。
Andrea,这就是我一直在寻找的东西。然而,上面的代码不适合我。
我正在启动一个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”); – 2010-09-01 18:00:11
谢谢我试过了,它工作。但是,有了这个我试图读取控制台日志,它不会返回我需要的输出。这是我的完整代码,以供澄清。 我期待的是command123的输出。 – user393148 2010-09-01 19:58:03
进程p = new Process(); p.StartInfo = psi; p.Start(); p.StandardInput.WriteLine(@“c:\ test。CMD ARG1 ARG2 &&坎德拉/ DC:\ TESTDIR \样品&& command123/C “); p.StandardInput.WriteLine(@” 退出“); 串输出= p.StandardOutput.ReadToEnd(); p.WaitForExit (); – user393148 2010-09-01 19:59:12