Csharp/C#教程:启动命令窗口并在其中运行命令分享


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

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

例如,启动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"); 

您可以使用进程标准输入将更多命令发送到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(); 

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

cmd/c参数。

 ProcessStartInfo start = new ProcessStartInfo("cmd.exe", "/c pause"); Process.Start(start); 

pause只是你可以运行的一个例子)

但是对于创建目录,您可以直接从c#执行该操作和大多数其他文件操作

 System.IO.Directory.CreateDirectory(@"c:foobar"); 

只有当您有一些不想在c#中复制的大型文件时,才能从c#启动cmd。

也许这篇文章很有帮助。 你是这个意思吗?

你想要达到什么目的? 你真的需要打开命令窗口,还是只需要创建一个目录,例如?

mkdir是一个Windows可执行文件 – 您可以像启动cmd一样启动此程序 – 不需要首先启动命令窗口进程。

您还可以创建一个包含要运行的所有命令的批处理文件,然后使用您已经使用的Process和ProcessStartInfo类来启动它。

上述就是C#学习教程:启动命令窗口并在其中运行命令分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/959512.html

(0)
上一篇 2021年11月23日
下一篇 2021年11月23日

精彩推荐