我可以从 c# 表单运行 windows 命令吗? [复制]
Posted
技术标签:
【中文标题】我可以从 c# 表单运行 windows 命令吗? [复制]【英文标题】:Can I run windows commands from a c# form? [duplicate] 【发布时间】:2015-05-06 03:55:12 【问题描述】:我是否可以从带有升 C 的 Windows 窗体调用 Windows 命令,例如在命令提示符中?如果有,怎么做?
【问题讨论】:
你指的是什么命令?像 ping、复制、计算、记事本等? @JamesBlond 一般任何命令 好的,然后看看 Ken White 的重复链接。选择的答案包含您需要的一切。 看看这里:***.com/questions/1469764/run-command-prompt-commands 尝试 Process.Start()。如果您提供文件的字符串路径,则该文件将由默认应用程序打开。 【参考方案1】:最简单的方法是如下图here..
Process.Start("Executable name here", "parameters here");
但是,如果您想设置工作目录、捕获标准输出或错误、不创建窗口等。您可以执行以下操作..
void StartNewProcess(string processName, string parameters, string startDir)
var proc = new Process();
var args = new ProcessStartInfo
FileName = processName,
Arguments = parameters,
WorkingDirectory = startDir,
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
;
proc = Process.Start(args);
proc.ErrorDataReceived += p_DataReceived;
proc.OutputDataReceived += p_DataReceived;
proc.BeginErrorReadLine();
proc.BeginOutputReadLine();
proc.WaitForExit();
然后你可以使用类似这样的东西来处理输出..
void p_DataReceived(object sender, DataReceivedEventArgs e)
if (e.Data != null && e.Data.Length > 0) Console.WriteLine(e.Data);
调用示例..
void button1_Click(object sender, EventArgs e)
//Input params: Executable name, parameters, start directory
StartNewProcess("cmd.exe", "/C dir", "C:\\");
【讨论】:
谢谢,伙计!正是我需要的。以上是关于我可以从 c# 表单运行 windows 命令吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我可以从 c# 代码运行 IloOplExec() Cplex 函数吗?
我们可以在 C# 中使用单独的线程从 Windows 应用程序打印吗?
我们可以在 Windows 中通过命令提示符运行 mysql 查询吗?