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

Tal*_*ili 6 windows git shell r path

我希望通过R中的"shell"命令将git添加到Windows 7中的PATH中.

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

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

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

不知道是什么问题?

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

setx PATH "C:\\Program Files (x86)\\Git\\bin"
Run Code Online (Sandbox Code Playgroud)

哪个有效.但我希望我可以通过R.(也许创建一个临时文件并运行它?)然后我必须重新启动一些程序以确保它们受到影响.

Ric*_*ton 9

如果你想永久地更新你的路径,那么你几乎得到了答案:

shell('setx PATH "C:\\Program Files (x86)\\Git\\bin"')
Run Code Online (Sandbox Code Playgroud)

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

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


如果您希望R在当前会话中看到不同的路径,请使用Sys.setenv.

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

这不会对路径进行永久性更改.只有R才能看到这种变化,直到你关闭它.