我需要执行命令行参数。如果文件路径包含空格,则它无法正常工作。它返回未找到的错误文件。该计划如下。
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;
}
如果文件路径不包含空格,则它可以正常工作。
答案 0 :(得分:2)
您是否尝试过在路径中添加引号?
ExecuteCommand(file, string.Format("\"" + docFile + "\" -o \"" + docxFile + "\""));
答案 1 :(得分:2)
试试这个
ExecuteCommand(file, string.Format("\"{0}\" -o \"{1}\"",docFile , docxFile));