从nodejs运行多个Windows命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从nodejs运行多个Windows命令相关的知识,希望对你有一定的参考价值。

当我的Windows Server收到发布请求时,我需要它来执行命令:

cd D:\project
git pull
mvn clean compile
cd target
java -jar app.jar -argument

我写了代码,但是不起作用:

const nodeCmd = require('node-cmd')

app.post((req, res) => {
  let command = `cd D:\project\my_project
                 git pull
                 mvn clean compile
                 cd target
                 java -jar app.jar ${req.body.arg}`;
  nodeCmd.get(command, (err, data, stderr) => {
    if(data) { 
     return res.json(data);
    }
    return err;
 });
})

这里是错误消息:

{ Error: Command failed: cd D:projectmy_project && dir
The system cannot find the path specified.

    at ChildProcess.exithandler (child_process.js:294:12)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  killed: false,
  code: 1,
  signal: null,
  cmd: 'cd D:Tempautobooker && dir' }
答案

我对在Windows中运行此类任务一无所知,但我怀疑您可能需要将其分解为多个调用或它们之间的&&

另一答案

您的命令字符串中的反斜杠不会转义。您可以使用string.raw指示JS引擎将模板文字视为原始字符串。

string.raw
另一答案

根据let command = String.raw`cd D:\project\my_project git pull mvn clean compile cd target java -jar app.jar ${req.body.arg}`; 文档,您的代码很完美,但是我认为您的问题出在您的项目路径中,这意味着您的第一个命令未执行,这是因为您的反斜杠未转义,根据错误消息,您的路径为node-cmd,这是不正确的,您需要将路径更新为像这样projectmy_project

以上是关于从nodejs运行多个Windows命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

scrapy按顺序启动多个爬虫代码片段(python3)

从运行在 Linux 上的 nodejs 通过 *** 访问 Windows 服务器上的数据库

如何安装NodeJS NodeJS如何运行

如何从 NodeJS 运行 CLI 命令? [复制]

如何使用 Nodejs 和 spawn 在 Windows 10 上以管理员身份运行一些 CMD 命令?