2010-04-15 10 views
11

No puedo hacer llamadas al sistema con espacios en los nombres y parámetros. Por ejemplo:Windows C llamada al sistema con espacios en el comando

system("c:\\program files\\something\\example.exe c:\\my files\\example.txt"); 

He tratado de escapar de todas las maneras que sé, y trabaja NADA. He tratado:

system("\"c:\\program files\\something\\example.exe\" \"c:\\my files\\example.txt\""); 

y

system("c:\\program^ files\\something\\example.exe c:\\my^ files\\example.txt"); 

Ni trabajo. Sigo recibiendo 'c: \ program' no es un comando interno o externo reconocido

Esto realmente me está volviendo loco ... Tengo que llamar y pasar los parámetros que tienen espacios en ellos. No puedo usar la notación corta por razones que no entraré.

He tratado con 'cita en lugar de "cotizaciones, todavía no funciona. He intentado poner comillas alrededor de todo el asunto y citas en torno a los espacios y que no funciona.

¿alguien sabe cómo para hacerlo correctamente

Respuesta

25

Editar:? OK, lo descubrió por entrar en la llamada system(): se necesita un sistema adicional de comillas alrededor de todo el asunto, debido al hecho de que internamente llama cmd/cyourinput

Así que esto funciona para mí:

system("\"\"c:\\program files\\internet explorer\\iexplore.exe\" \"www.stackoverflow.com\"\""); 

Un poco un lío, ¿verdad?

+0

Ooops He estado haciendo recodos. La razón por la que necesito que funcione con el sistema es porque también estoy usando _open, etc. – myforwik

+0

Editado - pruebe las comillas dobles. – EMP

+0

+1 Comillas dobles funciona para mí –

Cuestiones relacionadas