命令行参数中的空格不起作用

时间:2013-05-28 07:43:54

标签: c# command-line-arguments filepath

我需要执行命令行参数。如果文件路径包含空格,则它无法正常工作。它返回未找到的错误文件。该计划如下。

public void Method()
{
    string docFile = @"C:\Test Document1.doc";
    string docxFile = @"C:\Test Document1.docx";
    string file = @"C:\doc2x_r649 (1)\doc2x_r649\doc2x.exe";

    ExecuteCommand(file, string.Format(docFile + " -o " + docxFile));
}

public static string ExecuteCommand(string file, string command)
{
    String result;
    try
    {
        //Create a new ProcessStartInfo
        System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo();
        //Settings
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = false;
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.FileName = file;
        procStartInfo.Arguments = command;
        //Create new Process
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        //Set ProcessStartInfo
        proc.StartInfo = procStartInfo;
        //Start Process
        proc.Start();
        //Wait to exit
        proc.WaitForExit();
        //Get Result
        result = proc.StandardOutput.ReadToEnd();
        //Return
        return result;
    }
    catch
    {

    }

    return null;
}

如果文件路径不包含空格,则它可以正常工作。

2 个答案:

答案 0 :(得分:2)

您是否尝试过在路径中添加引号?

ExecuteCommand(file, string.Format("\"" + docFile + "\" -o \"" + docxFile + "\""));

答案 1 :(得分:2)

试试这个

ExecuteCommand(file, string.Format("\"{0}\" -o \"{1}\"",docFile , docxFile));