Windows setx的语法无效

Windows setx的语法无效,windows,environment-variables,ogre,Windows,Environment Variables,Ogre,我使用setx命令设置OGRE\u HOME: setx OGRE_HOME D:\Program Files\OgreSDK 现在我需要更改为OGRE\u HOME的值。 如何搜索已设置的所有值? 如果我再次运行该命令,它将显示: ERROR: Invalid syntax. Default option is not allowed more than '2' time(s). Ogre SDK的路径中有一个空格字符,它被解释为另一个参数的分隔符。用“环绕路径,将其作为setx的一个参数

我使用
setx
命令设置
OGRE\u HOME

setx OGRE_HOME D:\Program Files\OgreSDK
现在我需要更改为
OGRE\u HOME
的值。 如何搜索已设置的所有值? 如果我再次运行该命令,它将显示:

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).

Ogre SDK的路径中有一个空格字符,它被解释为另一个参数的分隔符。用
环绕路径,将其作为
setx
的一个参数:

setx OGRE_HOME "D:\Program Files\OgreSDK"
要查看
OGRE\u HOME
环境变量的当前值:

echo %OGRE_HOME%
如果设置了新的命令提示符shell,然后试图立即查看其值,则可能需要打开新的命令提示符shell才能查看该值

要查看所有当前设置的环境变量,只需运行:

set
要仅显示具有特定前缀的环境变量(因此
FOO
将显示
FOOBAR
FOOBAZ
),请将该前缀置于
set
之后:

set PREFIX
或者,您可以使用GUI编辑环境变量(此处假设为Windows 7)

  • 右键单击
    计算机
    ,选择
    属性
  • 单击左窗格中的
    高级系统设置
  • 确保您在弹出对话框的
    高级
    选项卡上
  • 单击底部的
    环境变量…
将弹出一个对话框,其中包含用户特定的环境变量以及系统范围的环境变量。选择一个值,然后使用新建/编辑/删除按钮与它们交互。

作为的附录。如果对PowerShell而不是命令提示符或批处理文件执行相同操作,则需要使用前导转义双引号字符调用
SETX
,如中所示:

$my_path=“%PROGRAMFILES%\MySQL\MySQL服务器5.7\bin”
$hkcu_path=(获取项目属性hkcu:\Environment).path+”;“+$myu路径
SETX路径“`“$hkcu#U路径”#注意前面的转义引号
但是,这样做可能会导致在
hkcu:\Environment\PATH
的值中添加一个尾随的双引号,因此您可能也需要这样做:

$dirty\u path=(获取项目属性hkcu:\Environment)。路径
$clean_path=$dirty_path-替换“”,“”
SETX路径$clean_路径

由于您忘记了引号,命令提示符会提示您该错误。您应该键入:

setx OGRE_HOME “D:\Program Files\OgreSDK”
要查看已设置的所有值,请输入:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"


setx和几乎所有windows命令行命令都对某些特殊字符敏感。其中包括空格字符,但也有用于分隔条目的引号

正如@ajp15243已经说过的,您可以通过锁定两个引号之间的路径{s)来处理空格。但是如果您有路径并且这些路径已经有引号了,因为它们带有空格呢?下面是一个示例:

MY_PATHS="c:\Program Files\path1";"c:\Program Files(x86)\Path2"
在这种情况下,当您使用setx时,您必须为这些内部引号添加转义字符,否则它会混淆并给出您列出的错误。例如:

setx -m MY_PATHS "\"c:\Program Files\path1\";\"c:\Program Files(x86)\Path2\""

不确定是否理解,但要查看所有值,请使用
set
。非常感谢。我将永远不会在带有空格字符的路径上安装软件,因为它可能会遇到一些我们难以检查的问题。请注意,如果使用%path%(用于附件),您还需要“”。
setx -m MY_PATHS "\"c:\Program Files\path1\";\"c:\Program Files(x86)\Path2\""