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