Windows 10 中的 setx 删除反斜杠

setx in Windows 10 removes backslashes

我正在尝试在 Windows 10:

中设置我的 HOME 路径
setx -m HOME C:\Users\MyName

然后我检查变量的值:

echo %HOME%

它returns

c:UsersMyName

这很麻烦,因为我正在尝试将 Git 与 ssh 一起使用,它需要知道存储我的 .ssh 文件夹的主文件夹。我做错了什么?

您可能是从 bash 呼叫 setx。由于 \ 在 bash 和大多数其他 Unix shell 中是 escape character,因此它不会导致文字反斜杠。您需要使用 \ 转义反斜杠本身或使用 ':

引用它
$ echo setx -m HOME C:\Users\MyName
setx -m HOME C:UsersMyName
$ echo setx -m HOME 'C:\Users\MyName'
setx -m HOME C:\Users\MyName
$ echo setx -m HOME C:\Users\MyName
setx -m HOME C:\Users\MyName

或者只需从 Windows shell 调用 setx,例如 cmd 或 powershell。但正如我所说,如果您每次 运行 时都需要从脚本中调用 setx,那么您就错了。在这种情况下,您需要使用正常的 set:

set "HOME=%USERPROFILE%"