On 29.06.2011 20:58, Duncan Murdoch wrote:
On 29/06/2011 2:24 PM, Janko Thyson wrote:
Dear list,

this is not directly an R question, but it is somewhat related to R
aspects, so I hope it's okay to post it here:

I'd like to update my windows PATH based on a script routine in order to
make sure that crucial components are contained. Much like what happens
at the installation of Rtools (if desired). Now, can you do that from
within R or do I need some sort of windows batch file or something like
AutoIt script (http://www.autoitscript.com/site/autoit/)? If so, what
would I need to put in there?

You need to set the registry entry if you want a persistent change to the PATH. Sys.setenv just modifies R's copy of the PATH. Child processes will see the modifications, but they don't last beyond the R session.

You'll have to check MS docs to find which registry entry to mess with. Alternatively, if you feel lucky, just use Control Panel to set some strange path, then see where your change showed up using regedit.

R doesn't have a built-in function to write to the registry, but there are various utilities available outside of R to do it.

Duncan Murdoch

Thanks for the quick answer!
Would you mind sharing how you do it with the Rtools Windows installer? Or is that too much bound to installer details and can't be secluded very well?

The motivation behind this is that I came to love applications that can be run portably (i.e. apps that don't write anything to the Windows registry and can therefore be easily be "installed" on a USB drive, for example). That works just fine with R, my IDE Eclipse and also Rtools. The problem is that I need a batch script that optionally checks under which letter my USB drive is mounted and updates the relevant paths to Rtools binaries in my Windows PATH to make it somewhat "dynamical". Of course I'd like to clean everything up once my R-session terminates so I can reset the Windows PATH to it's original state once I'm finished working at a specific PC.

What I also just thought of: is there some way to specify relative and not absolute paths in the windows PATH? I know that this works when you have an .exe as a reference point (e.g. '..\somedir\' goes up one directory relative to the directory where the .exe is called and then moves into 'somedir'). But since there is no such thing as an .exe involved, there's probably no way to do it.

But thanks for the info, I'll have a look at MS specific documentation to get the job done.

Regards,
Janko


Here's what I tried in R:

unlist(strsplit(Sys.getenv("PATH"), ";"))
PATH.0<- Sys.getenv("PATH")
PATH.1<- paste(PATH.0, "C:\\blabla\bin")
Sys.setenv("PATH"=PATH.1)
unlist(strsplit(Sys.getenv("PATH"), ";"))

The changes seem to be reflected, but when I check my PATH the new entry
isn't there. I guess there is no actual "feedback" to Windows system
environment variable and that's exactly what I would like to accomplish

Thanks a lot for any advice,
Janko

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to