首页 > 解决方案 > 使用 Node.js 将标准输出重定向到截断的文件

问题描述

我正在尝试使用 Node.js 编写实用程序脚本,并且必须将命令的标准输出保存到文件中。有没有一种简单的方法来做类似command arg1 arg2 > output.txtNode 的事情?

我正在调用模块的命令spawn()child_process例如var command = spawn("command", [arg1, arg2]),但似乎没有办法将标准输出重定向到文件。

谢谢!

标签: node.jsprocessstdout

解决方案


据我所知,您必须通过附加事件处理程序来手动附加到文件,如此stdout所述

它看起来像

const { spawn } = require('child_process')
const fs = require('fs')

const cmd = spawn(...)

const appendToLog = data => fs.appendFileSync('my-log.log', `${data}\n`)

cmd.stdout.on('data', appendToLog)

推荐阅读