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.