再次问好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”
答案 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
等同于正确的目录。这是相对路径相对的。