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;
}
如果文件路徑不包含空格,它可以正常工作。
爲什麼你使用'string.Format'如果你要做的就是串concatination – I4V
@Spaceman:謝謝你..它曾爲 – user2323308
@ I4V:我以前張貼的原代碼在這個問題中,但你是對的,在這種情況下不需要'string.Format'。 – Spaceman