文件路径中的空格作为命令行参数传递

时间:2014-12-22 07:47:08

标签: c#

我正在尝试将文件路径作为命令行参数传递。如果没有空格的路径可以正常工作,但是空格不行。在下面的代码commandText" scriptPath"即使有空间也在工作。 但变量" file1" &安培; "文件2"不使用空格。



string scriptFilePath = "@" + string.Format("\"{0}\"", "D:\\Script\\ScriptFile.txt");
            string file1 = @"D:\New Folder\file1.png";
            string file2 = @"D:\New Folder\file2.png";
            string outPutPath = @"D:\New Folder\Output\Report.html";

            string commandText = "/c " + "BCompare.exe" + scriptFilePath + " " + file1 + " " + file2 + " " + outPutPath;
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.WorkingDirectory = @exePath;
            startInfo.FileName = "cmd.exe";
            startInfo.RedirectStandardInput = true;
            startInfo.UseShellExecute = false;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            startInfo.CreateNoWindow = true;
            startInfo.Arguments = commandText;
            proc = Process.Start(startInfo);
            proc.WaitForExit();




3 个答案:

答案 0 :(得分:1)

将文件路径放在引号中。

答案 1 :(得分:0)

请先修复您的代码:

  • 缺少分号
  • 修复代码中的路径并使其可读(使用String.Format并使用@)
  • 我想你想用命令行执行“executable.exe”,所以使用“executable.exe”作为startInfo.FileName,只需将其余参数(scriptPath,file1,file2)添加到startInfo.Arguments并make确保所有这些都在双引号之间

答案 2 :(得分:0)

解决方案1 ​​

string file1 = @"D:\New Folder\file1.png";

解决方案2

string file2 = "\"D:\\New Folder\\file2.png\"";