C# - 将带有空格的参数传递给进程

pal*_*all 7 c#

我正在尝试将一个参数传递给进程一个名称中包含空格的文件夹.它无法识别该文件夹.我怎样才能做到这一点?

string my_arg = @"C:\\program files\\my folder with spaces";

ProcessStartInfo proc = new ProcessStartInfo();

proc.FileName = @"C:\batches\my_batch.bat";

proc.Arguments = @my_arg ;

Process.Start(proc);
Run Code Online (Sandbox Code Playgroud)

这个过程不会开始 - 如果我使用名称中没有空格的文件夹,它确实有效.谢谢!

Kon*_*lph 6

你正在使用文字字符串; 没有必要逃避反斜杠,事实上,如果你这样做,那么首先不需要使用文字字符串.

另一方面,空间需要特别小心 - 将参数包含在引号中解决了这个问题.

string my_arg = @"""C:\program files\my folder with spaces""";
Run Code Online (Sandbox Code Playgroud)


Yet*_*eek 1

尝试执行以下操作,因为带空格的文件夹名称应在 cmd 中引用:

string my_arg = @"""C:\\program files\\my folder with spaces""";
Run Code Online (Sandbox Code Playgroud)