命令行参数在C#
您好再次#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”
使用的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
尝试设置StartInfo
属性。
Process process = new Process();
process.StartInfo.FileName = @"C:\myfolder\cocacola.exe";
process.StartInfo.Arguments = @"C:\myfolder\pepsi.txt";
process.Start();
ProcessStartInfo
有WorkingDirectory
属性应该设置为C:\ MyFolder文件
见:http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.workingdirectory.aspx
非常感谢CD!你帮我搞定了,我把你的和斧头的帖子结合起来! – Noli
您需要设置工作目录第一
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
进入正确的目录。这是相对路径相对于。
我不完全确定你要做什么。你想从另一个开始一个程序吗? – mydogisbox
是的,我有问题,Process.Start(foldervar +“cocacola.exe”,“pepsi.txt”); 不启动它像那样C:\ myfolder> cocacola.exe pepsi.txt但C:\ myfolder> cocacola pepsi.txt并且程序无法工作。 – Noli
@ Blabla R没有那不是我想要的待办事项。与,foldervar +“pepsi.txt”)你会改变这些参数。阅读以下行:D – Noli