^节点脚本参数中的字符

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

我的节点脚本正在接收以下参数:^PPP

我正在按如下方式调用脚本:npm run scriptName ^PPP

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

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

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

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

javascript node.js arguments special-characters
1个回答
0
投票

取决于您的终端。

我制作了一个名为args.js的简单脚本,>

console.log(process.argv);

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

$node args.js ^PPPP

输出

['节点/路径','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终端,则需要将^字符(What does the single circumflex in the windows cmd shell mean: More?)加倍。在其他终端上,它似乎工作正常。


编辑:

要将参数从npm run添加到节点脚本中,您需要像这样将它们与npm run分开:
--
© www.soinside.com 2019 - 2024. All rights reserved.