This question already has answers here:
Run Command Prompt Commands
(15个答案)
5年前关闭。
是否可以从带有C Sharp的Windows窗体中像在命令提示符中一样调用Windows命令?如果是这样,怎么办?
但是,如果要设置工作目录,捕获标准输出或错误,不创建窗口等,则可以执行以下操作。
然后,您可以使用类似这样的方法处理输出。
调用示例
(15个答案)
5年前关闭。
是否可以从带有C Sharp的Windows窗体中像在命令提示符中一样调用Windows命令?如果是这样,怎么办?
最佳答案
最简单的方法是执行以下操作,如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# - 我可以从C#窗体运行Windows命令吗? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28866687/