windows - 如何通过 R "shell"命令在 Windows 上设置 PATH

标签 windows r git shell path

我希望通过 R 中的“shell”命令将 git 添加到我在 Windows 7 中的路径中。

shell('set PATH=%PATH%;"C:\\Program%20Files%20(x86)\\Git\\bin"', intern = TRUE)
shell("echo %PATH% ", intern= TRUE)

但我没有看到添加的路径。

如果我在 cmd.exe 中运行上面的代码,它会将它添加到 PATH。

知道问题出在哪里吗?

更新: 我最终通过 cmd.exe 手动运行以下命令(我确保以管理员身份运行)

setx PATH "C:\\Program Files (x86)\\Git\\bin"

哪个有效。但我希望我能通过 R 做到这一点。(也许创建一个临时文件并运行它?) 然后我不得不重新启动一些程序以确保它们受到了影响。

最佳答案

如果你想永久更新你的路径,那么你几乎已经有了答案:

shell('setx PATH "C:\\Program Files (x86)\\Git\\bin"')

R 仅在启动时记录 Windows 环境变量的副本,因此 strsplit(Sys.getenv("PATH"), ";") 在您重新启动之前不会有所不同

此外,这不会以管理员权限运行(除非您将 R 设置为管理员?),因此它会将路径添加到 user 路径变量而不是系统变量。


如果您希望 R 在当前 session 中看到不同的路径,只需使用 Sys.setenv

Sys.setenv(
  PATH = paste(
    Sys.getenv("PATH"), 
    "C:\\Program Files (x86)\\Git\\bin", 
    sep = ";"
  )
)

这不会对路径进行永久更改。只有 R 可以看到此更改,并且只能在您关闭它之前看到。

关于windows - 如何通过 R "shell"命令在 Windows 上设置 PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622725/

相关文章:

c# - MSMQ 中的多个队列(性能下降)

windows - 是否可以在 VB.NET 中复制以下凭证过程?

c++ - memcpy 仅通过 C++ 复制一个字节

r - Shiny :将侧边栏控件重置为默认值

git-diff 在另一个目录中

git - 无法在已移动的文件上运行 git diff

windows - 如果文件不再存在,如何卸载 Windows 服务?

r - 使用 mlogit 包设置多项式 logit 模型

r - 在 R 中,我们可以用密码保护工作区吗?

git - 失败的 git 替换 : replace depth too high for object