如何解析此 C# 行中的双引号?[复制]

How can I parse double quotes in this C# line? [duplicate]

提问人:Mauro Asganalovi 提问时间:10/26/2020 最后编辑:Mauro Asganalovi 更新时间:10/26/2020 访问量:276

问:

我需要在路径字符串的这一行上加上双引号:

cmd.StartInfo.Arguments = @"/C attrib -h -s -i "+ Path +" ";

我试过了

cmd.StartInfo.Arguments = @"/C attrib -h -s -i "\""+ Path +""\" ";

cmd.StartInfo.Arguments = @"/C attrib -h -s -i "\"""+ Path +""\"" ";

但它没有用,我该怎么办?

C# 引号

评论

2赞 devNull 10/26/2020
这回答了你的问题吗?我可以在逐字字符串文字中转义双引号吗?
1赞 Ňɏssa Pøngjǣrdenlarp 10/26/2020
几十个很好的重复选项之一:在 Process.Start 参数中传递引号。顺便说一句,这不是“解析”,而是“逃避”

答:

0赞 ILally 10/26/2020 #1

删除 @ 符号以阻止反斜杠被视为文本字符而不是转义字符。那么 \“ 可用于双引号。

cmd.StartInfo.Arguments = "/C attrib -h -s -i \"" + Path + "\"";

评论

0赞 Mauro Asganalovi 10/26/2020
你能帮我解决这个问题吗?cmd.StartInfo.Arguments = “/C mshta vbscript:Execute(”CreateObject(“”SAPI.SpVoice“”)。Speak(“”“+ 文本 +”“”)(window.close)“) ”
0赞 ILally 10/26/2020
问题出在哪里?您现在应该能够使用上面的信息对双引号进行转义。如果您想要其他字符的列表,这很有用 - csharpindepth.com/articles/Strings
0赞 cryptic'l 10/26/2020 #2

您不需要 @ 符号。您只需要对双引号使用转义符号即可。只要做:

String Path = "The path string";
String s = "/C attrib -h -s -i \"" + Path + "\"";

评论

0赞 Mauro Asganalovi 10/26/2020
你能帮我解决这个问题吗?cmd.StartInfo.Arguments = “/C mshta vbscript:Execute(”CreateObject(“”SAPI.SpVoice“”)。Speak(“”“+ 文本 +”“”)(window.close)“) ”;