0

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

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;
}

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

4

2 回答 2

2

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

ExecuteCommand(file, string.Format("\"" + docFile + "\" -o \"" + docxFile + "\""));
于 2013-05-28T07:49:41.683 回答
2

试试这个

ExecuteCommand(file, string.Format("\"{0}\" -o \"{1}\"",docFile , docxFile));
于 2013-05-28T07:53:24.797 回答