Der Knoten child_process.spawn arbeitet nicht mit Leerzeichen im Pfad von Windows

9

Wie stelle ich einen Pfad zu child_process.spawn

bereit?

Zum Beispiel der Pfad:

c:\users\marco\my documents\project\someexecutable

Der Pfad wird vom Endbenutzer aus einer Konfigurationsdatei bereitgestellt.

%Vor%

Derzeit wird nur der Teil nach dem Leerzeichen von child_process.spawn

verwendet

Ich habe es auch versucht, indem ich Zitate um den Pfad wie folgt hinzufüge:

%Vor%

Dies führt jedoch zu einem ENOENT Fehler.

    
Marco Franssen 25.01.2014, 21:17
quelle

3 Antworten

2

Der erste Parameter muss der Befehlsname sein, nicht der vollständige Pfad zur ausführbaren Datei. Es gibt eine Option namens cwd , um das Arbeitsverzeichnis des Prozesses anzugeben. Außerdem können Sie sicherstellen, dass die ausführbare Datei erreichbar ist, indem Sie sie der Variablen PATH hinzufügen (wahrscheinlich einfacher).

Auch das args -Array, das an spawn übergeben wurde, sollte keine leeren Elemente enthalten.

Ihr Code sollte etwa so aussehen:

%Vor%     
cmlndz 17.06.2015, 13:32
quelle
0

Ich verwende spawn häufig, die Art, wie ich das Problem gelöst habe, ist process.chdir . Wenn dein Pfad c:\users\marco\my documents\project\someexecutable lautet, solltest du Folgendes tun:

%Vor%

Beachten Sie die doppelte \ s, so funktionierte es für mich.

    
anvarik 03.02.2015 16:06
quelle
0

Gemäß Ссылка kann die Option { shell: true } verwendet werden.

Zum Beispiel

%Vor%

Funktioniert.

    
Trevor 24.12.2017 16:23
quelle

Tags und Links