C#中的命令行参数

时间:2011-09-01 19:57:39

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

再次问好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”

4 个答案:

答案 0 :(得分:3)

使用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

答案 1 :(得分:2)

尝试设置StartInfo属性。

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

答案 2 :(得分:1)

ProcessStartInfo具有您应设置为C {\ myfolder

WorkingDirectory属性

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

答案 3 :(得分:0)

您需要先设置工作目录

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

在运行程序之前,设置WorkingDirectory与cd等同于正确的目录。这是相对路径相对的。

相关问题