2013-10-10 110 views
2

我正在使用nodejs和子進程模塊在我的平臺上執行命令。爲此,我使用spawn functionNodeJS - 產卵功能

這裏是我的代碼:

var spawn_execution = executor.spawn(command, args); 

spawn_execution.stdout.on('data', function (data) { 
    console.log('stdout: ' + data); 
}); 

spawn_execution.stderr.on('data', function (data) { 
    console.log('stderr: ' + data); 
}); 

沒什麼特別的。所以我嘗試了幾個命令,像

executor.spawn('C:/path/to/ffmpeg.exe', [...]); 

但是,當我嘗試使用本地Windows命令,它不起作用。例如,我嘗試過:

executor.spawn('del', ['C:\\my\\file\\to\\delete']); 

執行此操作時,出現ENOENT錯誤,表示找不到該文件。所以,我做了另一件事:

executor.spawn('C:/my/script-delete.exe', ['C:\\my\\file\\to\\delete']); 

此腳本delete.exe只包含:

del %1 

那麼,爲什麼菌種功能需要有一個腳本文件?爲什麼它不適用於本地Windows命令?你知道一種使它與本地命令一起工作的方法嗎?

謝謝!

回答

7

它不起作用,因爲無法從executor.spawn找到內部命令,只有cmd.exe知道它們。

因此,它從一個批處理文件或工作時使用類似

executor.spawn('cmd.exe', ['/C', 'del', 'C:\\my\\file\\to\\delete']); 
+0

Workds完美!謝謝。 :) – Jalyo