^ 节点脚本参数中的字符

^ Character in Node Script Arguments

我有一个接收以下参数的节点脚本:^PPP.

我调用脚本如下:npm run scriptName ^PPP.

但是在脚本中,如果我执行 console.log(process.argv),输出将我的参数显示为 PPP

我尝试将字符转义为 npm run scriptName \^PPPnpm run scriptName "^PPP" 但无济于事。

请帮助我如何从参数中接收原始字符串。

PowerShell 到 运行 命令和 v10.16.2 节点版本

这取决于您的终端。

我用

制作了一个名为 args.js 的简单脚本
console.log(process.argv);

在 windows 或 WSL (Ubuntu) 上使用 git bash,调用

$node args.js ^PPPP

输出

[ 'node/path', 'path/to/args.js', '^PPPP' ]


使用 windows cmd 终端,调用

>node args.js ^PPPP

输出

[ 'C:\Program Files\nodejs\node.exe', 'C:\workspace\tests\args.js', 'PPPP' ]

并调用

>node args.js ^^PPPP

输出

[ 'C:\Program Files\nodejs\node.exe', 'C:\workspace\tests\args.js', '^PPPP' ]


所以如果你使用Windows的终端,你需要加倍^字符()。在其他终端上,它似乎工作正常。


编辑: 要从 npm run 向您的节点脚本添加参数,您需要像这样用 -- 将它们分开:

>npm run scriptName -- ^^PPP