2011-09-01 163 views
0

您好再次#1社区,命令行参数在C#

今天我试图执行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”

+0

我不完全确定你要做什么。你想从另一个开始一个程序吗? – mydogisbox

+0

是的,我有问题,Process.Start(foldervar +“cocacola.exe”,“pepsi.txt”); 不启动它像那样C:\ myfolder> cocacola.exe pepsi.txt但C:\ myfolder> cocacola pepsi.txt并且程序无法工作。 – Noli

+0

@ Blabla R没有那不是我想要的待办事项。与,foldervar +“pepsi.txt”)你会改变这些参数。阅读以下行:D – Noli

回答

3

使用的ProcessStartInfo

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

例如:在StartInfo的属性

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

这里是文档:

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

+0

我的程序在哪里知道cocacola.exe的位置? – Noli

+0

其实这与CD的有用的评论设置WorkingDirectory的工作!也谢谢你们! – Noli

+0

编辑我的答案添加workingDirectory – hatchet

2

尝试设置StartInfo属性。

Process process = new Process(); 
process.StartInfo.FileName = @"C:\myfolder\cocacola.exe"; 
process.StartInfo.Arguments = @"C:\myfolder\pepsi.txt"; 
process.Start(); 
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进入正确的目录。这是相对路径相对于。