使用参数启动流程

时间:2014-02-25 18:14:07

标签: c#

您可以使用此命令从命令提示符启动FreePascal并加载源: C:\ FPC \ 2.6.2 \ bin \ i386-win32 \ fp.exe 2.pas ,其中第一个参数是FreePascal可执行文件的路径,2.pas是源。现在,我想从C#中打开这样的来源。我已经尝试了这个但是没有用:

Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false; //required to redirect
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = string.Format("/C C:\\FPC\\2.6.2\\bin\\i386-win32\\fp.exe \"{0}\"", sourcePath);

process.StartInfo = startInfo;
process.Start();

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\FPC\\2.6.2\\bin\\i386-win32\\fp.exe";
startInfo.Arguments = path;
Process.Start(startInfo);

你有什么建议吗? 谢谢!

UPDATE 路径值示例: “C:\ FPC \ 2.6.2 \ bin \ i386-win32 \ 3.pas”

2 个答案:

答案 0 :(得分:4)

尝试在字符串中添加@,使其成为verbatim string literal,这样反斜杠就可以了:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\FPC\2.6.2\bin\i386-win32\fp.exe";
startInfo.Arguments = path;
Process.Start(startInfo);

或者:

startInfo.FileName = "cmd.exe";
startInfo.Arguments = string.Format("/C {0} \"{1}\"",
    @"C:\FPC\2.6.2\bin\i386-win32\fp.exe", sourcePath);

答案 1 :(得分:1)

您必须在@前添加路径字符串。请遵循以下代码:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\FPC\2.6.2\bin\i386-win32\fp.exe";
startInfo.Arguments = @"2.pas";
Process.Start(startInfo);