从 child_process.spawn 获取完整的命令行字符串

Rya*_*ggs 5 spawn child-process node.js

我正在使用 child_process.spawn() 生成一个进程。如何查看执行的确切命令行(包括传递给 spawn 函数的所有命令行参数)?

这是我不起作用的示例:

var s = require('child_process');
var p = s.spawn('ffmpeg', ['-probesize 1024', '-i "rtsp://192.168.1.10:554/11"', 'test.h264']);
Run Code Online (Sandbox Code Playgroud)

当我捕获标准错误时,我收到一条消息“无法识别的选项 'probesize 1024'。但是,如果我从命令行运行 ffmpeg,它工作正常。所以我需要在被修改之前确切地查看命令行选项是如何被破坏的发送到 FFMPEG 以进行调试。

谢谢

axm*_*m__ 3

尝试

var p = s.spawn('ffmpeg', [
    '-probesize',
    '1024',
    '-i',
    'rtsp://192.168.1.10:554/11',
    'test.h264'
]);
Run Code Online (Sandbox Code Playgroud)

命令行参数之间有空格但保持一致,仍然需要分隔。-probesize所以和之间需要有一个空格1024

更新

如果您想将连贯的参数保持在一起,请添加shell: true到选项对象:

var p = s.spawn('ffmpeg',
    [
        '-probesize 1024',
        '-i "rtsp://192.168.1.10:554/11"',
        'test.h264'
    ],
    {
        shell: true
    }
);
Run Code Online (Sandbox Code Playgroud)