产生的子进程逃脱了引号

时间:2014-06-10 08:40:39

标签: javascript node.js

我正在尝试添加需要引用字符串的参数,但spawn正在转义它们。

代码如下:

var printProc = spawn('RawPrintServer.exe', ['STANDALONE', '"RawPrinter"'], {
    detached: true,
    stdio: ['ignore', out, err]
});

当我检查任务管理器时,我可以看到它已经将其生成为

RawPrintServer.exe STANDALONE "\"RawPrinter\""

我需要

RawPrintServer.exe STANDALONE "RawPrinter"

2 个答案:

答案 0 :(得分:2)

看起来你需要改变

['STANDALONE', '"RawPrinter"']

['STANDALONE', 'RawPrinter']

答案 1 :(得分:1)

windowsVerbatimArguments

var printProc = spawn('RawPrintServer.exe', ['STANDALONE', '"RawPrinter"'], {
  detached: true,
  stdio: ['ignore', out, err],
  windowsVerbatimArguments: true
});

发现它提到了一个错误(Quotes are not handled correctly when child_process.spawn() parses args),但我认为它没有记录。