ERROR: Invalid syntax. Default option is not allowed more than '2' time(s). Type "SETX /?" for usage

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s). Type "SETX /?" for usage

我正在使用Windows 10.在CMD中,我尝试在我的电子项目中执行以下命令:

setx GH_TOKEN "ghp_B3kYZy7OibM1Rka4Y3jLSiBUlvtSS717FhvE" npm run publish

我得到了这个错误:

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

以下代码是Package.json文件的部分内容:

"scripts": {
    "publish": "electron-builder build -w -p onTagOrDraft"
  }

在我看的教程中,这个命令在Mac操作系统中输入如下,可以正常运行:

使用

setx GH_TOKEN "ghp_B3kYZy7OibM1Rka4Y3jLSiBUlvtSS717FhvE" && npm run publish

&& 是必需的,因为有两个命令。如果没有 &&npm run publish 将作为参数传递给 SETX

如果您设置的环境变量包含一个或多个 space,也会发生此错误。

在这种情况下,您可以通过将值括在双引号中来避免该问题。与 SET 不同,后者将引号作为值的一部分,SETX 将引号从您的存储值中排除。

space 的差异以及 SETSETX 的报价处理方式如下例所示。

对于 SET 和 spaces,不需要引号(如果包含,则成为值的一部分):

Set a value                              View the value                              
-----------------------------            -----------------------------
C:\TEMP>set MYVAR=some value             C:\TEMP>set MY
                                         MYVAR=some value

C:\TEMP>set MYVAR="some value"           C:\TEMP>set MY
                                         MYVAR="some value"

对于 SETX 和 spaces,引号 需要的(并且做 成为值的一部分):

Set a value                              View the value in a new window                      
-----------------------------            -----------------------------
C:\TEMP>SETX MYVAR some value
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

C:\TEMP>SETX MYVAR "some value"          C:\TEMP>set MY
SUCCESS: Specified value was saved.      MYVAR=some value