Rscript on Windows
On 2/16/2007 9:35 AM, Gabor Grothendieck wrote:
I mentioned this twice already and no one answered;however, I am mentioning this a third time since its a serious deficiency.
I agree this would be a reasonable addition, but I wouldn't class it as a serious deficiency, and I don't plan to work on it myself. If you want to put together patches to the trunk code and docs to implement this I'll review them and possibly commit them. If you don't see this as a high enough priority to do that, then I'd suggest doing what I do: don't use the CMD.EXE shell. There are a number of Unix-like shells available in Windows (Cygwin, MSYS, etc.) that can handle the #! syntax just fine. Or just use two files, as you describe below. Duncan Murdoch > The Rscript facility
that is upcoming in R is useful but on Windows one will often be relegated to having two files: a batch file and an R file unless the -x switch is implemented to allow them to be combined. This is not a problem on UNIX which supports #! but on Windows we need -x. Every other common scripting language including perl, python and ruby supports -x for this purpose. (The -x flag would start R processing at the first line that begins with #! so that prior lines could be Windows batch commands allowing the same file to be used as a batch file and an R file.) Note that there is a bug in Windows which means that if you simply associate .R to running R then the result cannot be redirected. There is a bug fix available for this but I think we need to be able to run out of the box for something this common. On 1/29/07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
Haven't got any feedback on this one. Will we be getting a perl/python/ruby style -x switch for Rscript for R 2.5.0? It certainly would give more flexibility to users of Rscript on non-UNIX systems where #! notation is not available. On 1/26/07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
Good idea. ruby seems to work the same way. python does too but with a slightly different definition: C:\> ruby -h | findstr strip -x[directory] strip off text before #!ruby line and perhaps cd to directory C:\> perl -h | findstr strip -x[directory] strip off text before #!perl line and perhaps cd to directory C:\> python -h | findstr skip -x : skip first line of source, allowing use of non-Unix forms of #!cmd On 1/26/07, Vladimir Eremeev <wl2776 at gmail.com> wrote:
ActivePerl has '-x' switch which tells it to skip all lines in the file till "#!". This allows writing perl scripts in ordinary .bat files. ?shQuote contains a link with the following perl script example: ===8<=== @echo off :: hello.bat :: Windows executable Perl script :: Note: :: assumes perl.exe is in path :: otherwise, use absolute path perl -x -S "%0" %* goto end #!perl print "Hello, World!\n"; __END__ :end :: ------ end of hello.bat ------ Windows Notes: " -x " (lower case x): Skip all text until shebang line. " -S " (upper case S): Look for script using PATH variable. Special meaning in Windows: appends .bat or .cmd if lookup for name fails and name does not have either suffix. " %* " only on WinNT/2K/XP; use %1 %2 . . . %9 on Win9x/DOS ===8<=== I think the simplest way to implement shebang on windows would be embedding one more command line switch with similar functionality to perl's '-x'. -- View this message in context: http://www.nabble.com/Rscript-on-Windows-tf3120774.html#a8651815 Sent from the R devel mailing list archive at Nabble.com.
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel