【发布时间】:2019-08-09 18:27:20
【问题描述】:
这在 Windows 控制台中按预期工作:
set A="qwerty" && echo %A%
输出:"qwerty"
但是当我尝试在 NPM scipts 中运行相同的命令时:
package.json:
"scripts": {
"qwerty": "set A=\"qwerty\" && echo %A%"
}
> npm run qwerty
输出为:%A%
我做错了什么,或者它在 NPM 运行时不应该以这种方式工作?
【问题讨论】:
-
好吧,你的第一个命令行实际上不起作用;做
set "A=",然后再试一次,你会得到%A%的回声。要在同一行或代码块中编写和读取变量,您需要delayed expansion,因此在使用cmd /V:ON启动命令提示符时需要set "A=qwerty" & echo(!A!。或者,尝试set "A=qwerty" & call echo(%^A%(尽管在某些情况下这可能仍然失败)... -
是的,我猜我的第一个命令似乎正在运行,因为我猜是之前的运行。
-
没错,就是这个原因……
标签: npm cmd package.json npm-scripts