C# 逃逸;运行cmd.exe/C时参数路径中的字符
请有人告诉我如何在尝试启动以下过程时转义字符串中的“&”字符:C# 逃逸;运行cmd.exe/C时参数路径中的字符,c#,.net,cmd,C#,.net,Cmd,请有人告诉我如何在尝试启动以下过程时转义字符串中的“&”字符: var arguments = $"/C \"C:\\Here & Here\\MyExe.exe\""; Process process = new Process { StartInfo = { Arguments = arguments,
var arguments = $"/C \"C:\\Here & Here\\MyExe.exe\"";
Process process = new Process
{
StartInfo =
{
Arguments = arguments,
FileName = "cmd.exe",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false
}
};
process.Start();
我需要使用cmd.exe/C执行该进程,我已尝试使用替换字符串来使用^&
像这样:
var arguments = $"/C \"C:\\Here ^& Here\\MyExe.exe\"";
但它仍然没有找到路径
在cmd窗口中,我只需执行cmd.exe/C“C:\Here^&Here\MyExe.exe”“
,它不通过进程启动即可工作
谢谢如果路径是双引号,则效果良好:
var arguments = "/c \"\"C:\\Here & Here\\MyExe.exe\"\"";
您是否试图在cmd实例或C#实例或两者中突破
&
?文件的文本路径是什么。不,在文件的路径中有一个-,我只是想把它作为参数的一部分传递进去,因为某些原因,我似乎无法逃避字符。在cmd窗口中,我只需执行cmd.exe/C“C:\Here^&Here\MyExe.exe”,它不通过进程启动,而是执行以下操作:var arguments=@”/C“C:\Here^&Here\MyExe.exe”代码>谢谢,但仍然返回相同的退出代码1。所以它应该是var arguments=$”/C\“C:\\Here*\\MyExe.exe\”代码>