如何从 console.log(require("child_process").execSync('ls')) 获取文本标准输出?

how to get textual stdout from console.log(require("child_process").execSync('ls'))?

如何打印来自 console.log(require("child_process").execSync('ls'))

的标准输出

我试过 ts

import { execSync } from 'child_process';
console.log(execSync('ls -la'));

然后编译成js:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
console.log(child_process_1.execSync('ls -la'));

但是当我 运行 它时,我只得到像缓冲区一样如何获取标准输出?

$ node app.js
$ <Buffer 74 6f 74 61 6c 20 38 38 0a 64 72 77 78 72 2d 78 72 2d 78 20 20 31 31 20 74 6f 6d 65 72 2e 62 65 6e 64 61 76 69 64 20 20 73 74 61 66 66 20 20 20 20 33 ... >

我错过了什么?如何获取文本标准输出?

你的最后一行应该是:

console.log(child_process_1.execSync('ls -la').toString());

execSync returns 一个缓冲区,只需在缓冲区上调用 toString 即可将缓冲区的内容作为字符串获取。