Подтвердить что ты не робот

Как использовать строку с кавычками внутри нее?

У меня есть следующая строка, которую я хочу выполнить как процесс:

Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf

Однако, учитывая наличие кавычек, я не могу вставить эту строку в С#, чтобы скомпилировать ее, сохраняя всю исходную структуру. Как мне это исправить? Это немного сложно, поскольку в строке есть кавычки.

4b9b3361

Ответ 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";