我的节点脚本正在接收以下参数:^PPP
。
我正在按如下方式调用脚本:npm run scriptName ^PPP
。
但是如果在脚本中执行console.log(process.argv)
,输出将显示参数为PPP
。
我尝试将字符转义为npm run scriptName \^PPP
和npm run scriptName "^PPP"
,但无济于事。
请帮助我如何从参数中接收原始字符串。
PowerShell运行命令和v10.16.2节点版本
取决于您的终端。
我制作了一个名为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
分开:--