Как использовать строку с кавычками внутри нее?
У меня есть следующая строка, которую я хочу выполнить как процесс:
Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf
Однако, учитывая наличие кавычек, я не могу вставить эту строку в С#, чтобы скомпилировать ее, сохраняя всю исходную структуру. Как мне это исправить? Это немного сложно, поскольку в строке есть кавычки.
Ответы
Ответ 1
string whatever = "Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m \"SHARP MX-5500N PS\" /h \"Windows NT x86\" /v 3 /f sn0hwenu.inf";
или
string whatever = @"Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m ""SHARP MX-5500N PS"" /h ""Windows NT x86"" /v 3 /f sn0hwenu.inf";
Ответ 2
Вы можете поставить @перед определением строки и поместить два "
:
string myString = @"Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m ""SHARP MX-5500N PS"" /h ""Windows NT x86"" /v 3 /f sn0hwenu.inf"
Вы можете прочитать больше об экранировании символов в строках в этой статье:
http://www.yoda.arachsys.com/csharp/strings.html
Ответ 3
string s = "Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m \"SHARP MX-5500N PS\" /h \"Windows NT x86\" /v 3 /f sn0hwenu.inf";
Ответ 4
вам нужно избежать кавычек, используя \
. чтобы строка содержала: Hello "World"
вам следует написать "Hello\"World\""
Ответ 5
Вы также можете всегда использовать Convert.ToChar(34), 34 являющийся ASCII ".
например:
gitInfo.Arguments = @"commit * " + "-m" + Convert.ToChar(34) + messBox.Text + Convert.ToChar(34);
равна:
commit * -m "messBox.Text";