【发布时间】:2020-05-22 15:57:49
【问题描述】:
请有人建议我在尝试启动如下进程时如何转义字符串中的“&”字符:
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"",它只是不通过进程启动来工作
谢谢
【问题讨论】:
-
您是要突破 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\"";