【问题标题】:Start a command line including arguments from C#启动一个命令行,包括来自 C# 的参数
【发布时间】:2011-06-15 23:30:03
【问题描述】:

我需要从我的 C# 应用程序启动一个完整的命令行,例如“app.exe /arg1:1 /arg2:true”。

Process.Start 和 ProcessStartInfo 需要设置文件名和参数属性。有没有办法模仿真正的类似 shell 的执行(比如按 WIN+R 时的执行)?

【问题讨论】:

  • 您在使用Process.Start 时发现了哪些不足?
  • 一个批处理文件启动进程并使用 Process.Start 启动批处理文件怎么样?
  • 命令行来自配置文件,整体提供。我只是想模仿 WIN+R 功能。我认为即使是 VBScript 也有办法做我需要的事情......

标签: c# process


【解决方案1】:

是的,您可以启动 cmd.exe 并使用您想要作为参数发送的完整命令行。

info.FileName = "cmd.exe";
info.Arguments = "app.exe /arg1:1 /arg2:true";

【讨论】:

  • 您可能需要 /c 开关来告诉 cmd.exe 执行 app.exe。
  • 我也想过这个解决方案,但我不喜欢出现命令窗口。
【解决方案2】:

ProcessStartInfo.UseShellExecute 使 Process.Start 的行为与 Shell 完全相同: http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.useshellexecute.aspx

【讨论】:

  • 我知道这个属性,但这仍然需要我分别传入命令和参数。
【解决方案3】:

我找到了我一直在寻找的解决方案:Executing another program from C#, do I need to parse the "command line" from registry myself?

再次感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2011-09-27
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多