Pregunta ¿Cómo usar una cadena con comillas dentro?


Tengo la siguiente cadena, que quiero ejecutar como un proceso:

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

Sin embargo, dada la presencia de comillas, no puedo insertar esta cadena en C # para hacerlo compilar, manteniendo toda la estructura original. ¿Cómo debo solucionar esto? Es un poco complicado ya que hay comillas dentro de la cadena.


21
2018-04-04 15:25


origen


Respuestas:


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

o

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

30
2018-04-04 15:29



Puedes poner @ en frente de la definición de cadena y poner dos ":

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

Puede leer más sobre cómo escapar de los personajes en cadenas en este artículo:

http://www.yoda.arachsys.com/csharp/strings.html


8
2018-04-04 15:29



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

3
2018-04-04 15:28



tienes que escapar las comillas que usan \. tener una cuerda que dice: Hello "World" Deberías escribir "Hello\"World\""


3
2018-04-04 15:29



También puede usar Convert.ToChar (34), siendo 34 el ASCII de ".

por ejemplo:

gitInfo.Arguments = @"commit * " + "-m" + Convert.ToChar(34) + messBox.Text + Convert.ToChar(34);

es igual a:

commit * -m "messBox.Text";

0
2017-08-29 10:46