运行正则表达式的子进程在Windows上未被识别为错误

问题描述 投票:0回答:1

我使用以下代码获取Make文件目标

const command = `make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\\/t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}'`;

cp.exec(command, options, (error, stdout, stderr) => {
  if (error) {
    reject({ error, stdout, stderr });
  }
});

[通过代码使用它时出现错误(Windows):

"'$)' is not recognized as an internal or external command,
operable program or batch file.
"

但是,如果我在终端上运行确切的命令,则可以使用!可能是什么问题呢?

顺便说一句,在MacOS上,代码正在运行,有什么解决方法吗?正则表达式可能缺少什么?

我也尝试过使用shelljs并得到完全相同的错误,也许我错过了一些转义符?

我使用NodeJS child_process

如何使它起作用?

如果有其他方法可以获取makefile目标,可以尝试吗?

javascript node.js regex windows makefile
1个回答
0
投票

这是有关Windows管道child_process转义的问题。您已使用双引号而不是单引号。

使用双引号而不是单引号:

|
© www.soinside.com 2019 - 2024. All rights reserved.