【问题标题】:How to execute .cmd file using C#?如何使用 C# 执行 .cmd 文件?
【发布时间】:2020-04-17 17:57:30
【问题描述】:

我有一个包含几个步骤的命令 (.cmd) 文件。 我想使用 C# 代码执行这个文件

这是我写的代码-

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = @"C:\Users\zrana\Desktop\"
startInfo.FileName = @"C:\Users\zrana\Desktop\test.cmd"
process.StartInfo = startInfo;
process.Start();

当我运行这个程序时,我得到一个异常System.ComponentModel.Win32Exception: 'Access is denied'。 这是正确的做法吗?

【问题讨论】:

标签: c# .net command console-application


【解决方案1】:

您收到错误是因为您的可执行文件未在 管理员 模式下运行。
尝试构建您的项目,然后从构建输出文件夹中右键单击 exe 并选择“以管理员身份运行”,如果这没有帮助,请告诉我。


更新

请尝试通过从 Windows 调用 cmd.exe 来运行您的 cmd 文件,如下所示:

var testCmd = @"/C C:\Users\zrana\Desktop\test.cmd";
System.Diagnostics.Process.Start("cmd.exe", testCmd);

【讨论】:

  • 我仍然遇到同样的错误。它在我试图运行 .cmd 文件的 winforms 应用程序中
  • @ZankhanaRana 您能否确认您正在运行的cmd 文件的路径是否正确?
  • @ZankhanaRana 也请尝试像这样添加清单文件(例如:codeproject.com/Questions/629067/…):<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 或编辑您现有的清单。
  • 我检查并确认路径是正确的。我添加了一个清单文件,其中包含上一条评论中的行。我仍然遇到同样的错误。
  • @ZankhanaRana 我已经更新了帖子。请您尝试更新版本吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-19
  • 2019-11-03
  • 2014-05-31
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多