pasar - processstartinfo arguments c#
¿Cómo pasar múltiples argumentos en processStartInfo? (4)
Es puramente una cuerda:
startInfo.Arguments = "-sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer"
Por supuesto, cuando los argumentos contienen espacios en blanco, tendrá que escapar de ellos usando / "/", como:
"... -ss /"My MyAdHocTestCert.cer/""
Vea MSDN para esto.
Quiero ejecutar algún comando cmd
desde c#
código c#
. Seguí algunos blogs y tutoriales y obtuve la respuesta, pero estoy un poco confundido, es decir, ¿cómo debo pasar varios argumentos?
Yo uso el código de seguimiento:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.Arguments =
...
¿Cuál será el valor de startInfo.Arguments
para el siguiente código de línea de comando?
makecert -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer
netsh http add sslcert ipport=127.0.0.1:8085 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} clientcertnegotiation=enable
Para makecert, su startInfo.FileName
debe ser la ruta completa de makecert (o simplemente makecert.exe si está en la ruta estándar), entonces los Arguments
serían -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer
ahora no estoy familiarizado con el funcionamiento del almacén de certificados, pero quizás deba configurar startInfo.WorkingDirectory
si está remitiendo los archivos .cer fuera del almacén de certificados
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/c -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer"
use / c como argumento cmd para cerrar cmd.exe una vez que haya terminado de procesar sus comandos
startInfo.Arguments = "/c /"netsh http add sslcert ipport=127.0.0.1:8085 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} clientcertnegotiation=enable/"";
y...
startInfo.Arguments = "/c /"makecert -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer/"";
La /c
le dice a cmd que salga una vez que el comando ha finalizado. Todo después de /c
es el comando que desea ejecutar (dentro de cmd
), incluidos todos los argumentos.