Ludwig Hilger
2012-Dec-23 10:14 UTC
[R] Calling a .bat to set environment variables and subsequent .exe execution from within R
Dear list, I have found a thread dealing with similar problems with a Mac, but somehow I cannot get it to work and the problem is slightly different: I am using the shell() command to execute a program from within R. The problem is that I need to execute SDKShell.bat file first that sets the environment variables for the program ogr2ogr.exe: shell(cmd = "C:\\GDAL_1.9.2_MAPSERVER_6.2.0\\SDKShell_original.bat") Setting environment for using the GDAL and MapServer tools. Hiding the OCI plugin library. D:\R_working_directory\Koordinatenproblem>> source(.trPaths[5], echo=TRUE, max.deparse.length=150) shell( cmd="ogr2ogr -s_srs EPSG:31254 -t_srs EPSG:25832 D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser_25832.shp D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser.shp", invisible = FALSE, intern = TRUE ) shell(cmd="ogr2ogr -s_srs EPSG:31254 -t_srs EPSG:25832 D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser_25832.shp D:\\R_working_director ..." ... [TRUNCATED] [1] "Der Befehl \"ogr2ogr\" ist entweder falsch geschrieben oder" "konnte nicht gefunden werden." attr(,"status") [1] 1 Warnmeldung: Ausf?hrung von Kommando 'C:\Windows\system32\cmd.exe /c ogr2ogr -s_srs EPSG:31254 -t_srs EPSG:25832 D:\R_working_directory\Koordinatenproblem\Fliessgewaesser_25832.shp D:\R_working_directory\Koordinatenproblem\Fliessgewaesser.shp' ergab Status 1 The problem is that he cmd seems to "forget" the result of the command before, i.e. the cmd is shut between different calls by shell()!? As a result I cannot execute ogr2ogr.exe. Is there an argument or sth. to work in the same cmd-session using subsequent shell() executions from R? Thank you, best regards and have a nice Christmas, Ludwig ps: I have also tried to rewrite the .bat to set the environment variables permanently, but I did not manage that either. ----- Dipl. Geogr. Ludwig Hilger Wiss. MA Lehrstuhl f?r Physische Geographie Katholische Universit?t Eichst?tt-Ingolstadt Ostenstra?e 18 85072 Eichst?tt -- View this message in context: http://r.789695.n4.nabble.com/Calling-a-bat-to-set-environment-variables-and-subsequent-exe-execution-from-within-R-tp4653814.html Sent from the R help mailing list archive at Nabble.com.
Henrik Bengtsson
2012-Dec-23 14:35 UTC
[R] Calling a .bat to set environment variables and subsequent .exe execution from within R
If all you need to do is to set environment variables, you can do that from within R, e.g.> shell("echo %FOO%")%FOO%> Sys.setenv("FOO"="42"); > shell("echo %FOO%")42 My $.02 On Sun, Dec 23, 2012 at 11:14 AM, Ludwig Hilger <l.hilger at ku.de> wrote:> Dear list, > > I have found a thread dealing with similar problems with a Mac, but somehow > I cannot get it to work and the problem is slightly different: > I am using the shell() command to execute a program from within R. The > problem is that I need to execute SDKShell.bat file first that sets the > environment variables for the program ogr2ogr.exe: > > shell(cmd = "C:\\GDAL_1.9.2_MAPSERVER_6.2.0\\SDKShell_original.bat") > Setting environment for using the GDAL and MapServer tools. > Hiding the OCI plugin library. > D:\R_working_directory\Koordinatenproblem>> source(.trPaths[5], echo=TRUE, > max.deparse.length=150) > > shell( cmd="ogr2ogr -s_srs EPSG:31254 -t_srs EPSG:25832 > D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser_25832.shp > D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser.shp", invisible > = FALSE, > intern = TRUE ) > shell(cmd="ogr2ogr -s_srs EPSG:31254 -t_srs EPSG:25832 > D:\\R_working_directory\\Koordinatenproblem\\Fliessgewaesser_25832.shp > D:\\R_working_director ..." ... [TRUNCATED] > [1] "Der Befehl \"ogr2ogr\" ist entweder falsch geschrieben oder" "konnte > nicht gefunden werden." > attr(,"status") > [1] 1 > Warnmeldung: > Ausf?hrung von Kommando 'C:\Windows\system32\cmd.exe /c ogr2ogr -s_srs > EPSG:31254 -t_srs EPSG:25832 > D:\R_working_directory\Koordinatenproblem\Fliessgewaesser_25832.shp > D:\R_working_directory\Koordinatenproblem\Fliessgewaesser.shp' ergab Status > 1 > > The problem is that he cmd seems to "forget" the result of the command > before, i.e. the cmd is shut between different calls by shell()!? As a > result I cannot execute ogr2ogr.exe. Is there an argument or sth. to work in > the same cmd-session using subsequent shell() executions from R? > > Thank you, best regards and have a nice Christmas, > Ludwig > > ps: I have also tried to rewrite the .bat to set the environment variables > permanently, but I did not manage that either. > > > > ----- > Dipl. Geogr. Ludwig Hilger > Wiss. MA > Lehrstuhl f?r Physische Geographie > Katholische Universit?t Eichst?tt-Ingolstadt > Ostenstra?e 18 > 85072 Eichst?tt > -- > View this message in context: http://r.789695.n4.nabble.com/Calling-a-bat-to-set-environment-variables-and-subsequent-exe-execution-from-within-R-tp4653814.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.