2010-04-15 12 views
11

Ich kann keine Systemaufrufe mit Leerzeichen in den Namen und Parametern vornehmen. Zum Beispiel:Windows C Systemaufruf mit Leerzeichen im Befehl

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

Ich habe versucht, in jeder Art und Weise zu entkommen Ich weiß, wie und nichts funktioniert. Ich habe versucht:

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

und

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

Weder Arbeit. Ich bekomme immer noch 'c: \ program' ist kein interner oder externer Befehl

Das macht mich wirklich verrückt ... Ich muss Parameter aufrufen und übergeben, die Leerzeichen enthalten. Ich kann die kurze Notation nicht aus Gründen verwenden, auf die ich nicht eingehen werde.

ich versucht habe, mit "zitiert statt" zitiert, immer noch nicht funktioniert. Ich habe versucht, Anführungszeichen um das Ganze und Anführungszeichen um die Räume setzen und das nicht funktioniert.

Wer weiß, wie um es richtig zu machen

Antwort

25

Edit:? OK, es durch eine Verstärkung in den system() Anruf herausgefunden: Sie müssen einen zusätzlichen Satz von Anführungszeichen um die ganze Sache auf Grund der Tatsache, dass es ruft intern cmd/cyourinput

So funktioniert das für mich:

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

Ein bisschen ein Durcheinander, ist es nicht?

+0

Hoppla, ich habe gerade Schrägstriche gemacht. Der Grund, warum ich es mit System arbeiten muss, ist, weil ich auch _open usw. verwende. – myforwik

+0

Bearbeitet - versuchen Sie die Anführungszeichen. – EMP

+0

+1 Doppelte Zitate funktioniert für mich –

Verwandte Themen