【问题标题】:Commandline Arguments in C#C# 中的命令行参数
【发布时间】:2011-09-01 19:57:38
【问题描述】:

再次向 Stackoverflow 社区问好,

今天我尝试在 C# 中使用命令行参数执行应用程序,这并不像我尝试的那样困难

Process.Start(foldervar + "cocacola.exe", "pepsi.txt");

Cocacola.exe 在其当前文件夹中写入并登录。在我的命令行中,我像这样手动编写它

C:\myfolder>cocacola.exe pepsi.txt

效果很好,但如果我在 C# 中尝试它会完全失败。

我读到 C# 将命令解析为 C:\myfolder>cocacola pepsi.txt,没有“.EXE”结尾。而且我手动测试了没有结尾,这个不行。

现在,我的问题是让 C# 执行它的正确方法是 C:\myfolder>cocacola.exe pepsi.txt 和“.EXE”

【问题讨论】:

  • 我不完全确定您要做什么。您是否尝试从另一个程序启动一个程序?
  • 是的,没错,我遇到的问题是 Process.Start(foldervar + "cocacola.exe", "pepsi.txt");不会像 C:\myfolder>cocacola.exe pepsi.txt 那样启动它,而是 C:\myfolder>cocacola pepsi.txt 那样程序将无法运行。
  • @Blabla R 不,这不是我想要做的。使用 , foldervar + "pepsi.txt") 您将更改该参数。阅读前一行:D

标签: c# cmd command-line-arguments windows-shell shellexecute


【解决方案1】:

使用 ProcessStartInfo

http://www.dotnetperls.com/process-start

示例:

    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.WorkingDirectory=@"c:\someplace";
    proc.StartInfo.FileName="cocacola.exe";
    proc.StartInfo.Arguments="pepsi.txt";
    proc.Start();
    proc.WaitForExit();

这里是关于 StartInfo 属性的文档:

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx

【讨论】:

  • 我的程序在哪里知道 cocacola.exe 在哪里?
  • 实际上与CD的有用评论设置WorkingDirectory一起使用!也谢谢你们!!
【解决方案2】:

尝试设置StartInfo 属性。

Process process = new Process();
process.StartInfo.FileName = @"C:\myfolder\cocacola.exe";
process.StartInfo.Arguments = @"C:\myfolder\pepsi.txt";
process.Start();

【讨论】:

    【解决方案3】:

    ProcessStartInfo 具有 WorkingDirectory 属性,您应该将其设置为 C:\myfolder

    见:http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.workingdirectory.aspx

    【讨论】:

    • 非常感谢 CD!你帮我搞定了,我把你的和斧头的帖子结合起来了!
    【解决方案4】:

    需要先设置工作目录

    string foldervar = @"C:\myfolder";
    Process process = new Process();
    process.StartInfo.WorkingDirectory = foldervar;
    process.StartInfo.FileName = @"cocacola.exe";
    process.StartInfo.Arguments = @"pepsi.txt";
    process.Start();
    

    设置工作目录相当于cd在运行程序之前进入正确的目录。这就是相对路径的相对关系。

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 2012-06-09
      • 2017-06-26
      • 2016-12-22
      • 2013-10-09
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2013-12-26
      相关资源
      最近更新 更多