繁体   English   中英

C#中的命令行参数

[英]Commandline Arguments in C#

再次向您问好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#执行带有“ .EXE”的C:\\ myfolder> cocacola.exe pepsi.txt的正确方法是什么?

使用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/zh-CN/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/zh-cn/library/system.diagnostics.processstartinfo.workingdirectory.aspx

您需要先设置工作目录

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是equivilent到cd荷兰国际集团到正确的目录运行程序之前。 这就是相对路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM