【问题标题】:How to execute terminal commands in a js file (discord.js)如何在 js 文件 (discord.js) 中执行终端命令
【发布时间】:2021-05-27 02:15:26
【问题描述】:

我的不和谐机器人目前具有本地录音功能,每次有人说话时都会创建一个文件。当机器人与语音通话(从!stoprecording)断开连接时,我需要在终端中手动运行node merge.js 以将所有这些文件合并到一个主PCM 文件中。从那里,我需要运行另一个 FFMPEG 终端命令将合并的 PCM 文件转换为 MP3。这本身就很好,但很好奇是否有任何方法可以自动化?有没有办法在实际代码本身中执行终端命令。这样每次运行 !stoprecording 时,它都会合并文件并使用 FFMPEG 转换为 mp3?

【问题讨论】:

    标签: javascript node.js terminal discord discord.js


    【解决方案1】:

    在处理 discord.js bot 命令时,您可以使用 Node.JS 原生的东西来执行 shell 命令

    const util = require('util');
    const exec = util.promisify(require('child_process').exec);
    
    async function ls() {
      const { stdout, stderr } = await exec('ls');
      console.log('stdout:', stdout);
      console.log('stderr:', stderr);
    }
    
    // ls function is called in command exec function
    ls();
    

    【讨论】:

    • 这在我的代码中究竟是如何工作的?抱歉,我是编码新手
    • exec('ls') 是 shell 中的命令,将其替换为您想要的任何内容。并输入 ls() 。你想在哪里执行命令shell
    • 所以如果我需要在不同的目录中执行node merge.js,我该如何在我的 ls 中指定它
    • 只是在做node ../merge.js
    猜你喜欢
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2017-08-18
    • 2018-04-09
    • 2018-08-15
    • 2021-09-21
    相关资源
    最近更新 更多