I wish to add git to my PATH in Windows 7, through the "shell" command in R.
shell('set PATH=%PATH%;"C:\\Program%20Files%20(x86)\\Git\\bin"', intern = TRUE)
shell("echo %PATH% ", intern= TRUE)
But I do not see that path added.
If I run the above code in cmd.exe, it does add it to PATH.
Any idea what is the issue?
UPDATE: I ended up manually running the following through cmd.exe (which I made sure to run as admin)
setx PATH "C:\\Program Files (x86)\\Git\\bin"
Which worked. But I wish I could have done so through R. (maybe create a temp file and run it?) I then had to restart some programs to make sure they had been affected.
When you run
shell
, a new process is created. In Windows, this will runCMD.EXE
and pass the arguments given. Then this process exits.When you modify the environment variable, you are modifying in a subprocess of R and not in the R process itself. When the subprocess dies, so does its environment.
You should set the path appropriately before you start R instead.
Regarding
You're just changing the PATH environment variable in the new command interpreter process.
You can use the
setx
command to change the PATH defaults, but that does not affect your current process.What to do depends a bit on what you're trying to achieve.
If you want to permanantly update your path, then you pretty much had the answer:
R only notes a copy of the Windows environment variables when it starts up though, so
strsplit(Sys.getenv("PATH"), ";")
won't be different until you restart R.Also, this won't run as with admin permissions (unless you set R as an administrator?) so it will add the path to the user path variable not the system one.
If you want R to see a different path in the current session, just use
Sys.setenv
.This won't make permanant changes to the path. Only R can see this change, and only until you close it.