[R] Calling FING.EXE under RGui.EXE for windows.

Duncan Murdoch murdoch at stats.uwo.ca
Sun Jan 10 14:39:16 CET 2010


Gabor Grothendieck wrote:
> I noticed this does work, i.e. it displays the requested help info, in
> Rgui on my Vista system:
>
> library(tcltk)
> .Tcl("exec find /?")
>   

Yes, here too.  It stores the output in a tclObj, so it's doing what we 
want to do.  Anyone familiar with the Tcl source, and can spot the 
difference between their exec and our system()?

Duncan Murdoch
> On Sat, Jan 9, 2010 at 7:27 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>   
>> On 09/01/2010 6:31 PM, Gabor Grothendieck wrote:
>>     
>>> That doesn't explain why this returns character(o) even though we have
>>> launched a console for it:
>>>
>>> system("cmd /c C:\\windows\\system32\\find /?", intern = TRUE)
>>>       
>> I don't see any console launched.  R redirects stdin and stdout (and stderr,
>> I think), and it appears that Windows doesn't open a console.  I do see a
>> console flash by if I do
>>
>> system('cmd /c c:/WINDOWS/system32/find.exe /?', wait=FALSE,
>> invisible=FALSE)
>>
>> but of course then we don't capture the output, so it's not very useful.
>>  Looking at the source, the only case where we ask to create a console is
>> the combination "wait=FALSE, invisible=FALSE", but there might be
>> combinations of other options that make this a default.  The MS
>> documentation says that a console will be created automatically for any
>> console application, but that doesn't appear to be happening.
>>
>> So I guess you could get find.exe to work by calling it from a batch file
>> with a "pause" at the end and using the wait=FALSE,invisible=FALSE options.
>>
>> The above observations are in Win XP SP3, not anything newer.
>>
>> Duncan Murdoch
>>
>>     
>>> On Sat, Jan 9, 2010 at 5:24 PM, Duncan Murdoch <murdoch at stats.uwo.ca>
>>> wrote:
>>>       
>>>> On 07/01/2010 1:25 PM, Uwe Ligges wrote:
>>>>         
>>>>> Argh. I see it as well. Will dig a lit tomorrow.
>>>>>           
>>>> I don't know exactly what's going on, but it looks as though it is
>>>> something
>>>> specific to the find.exe utility, e.g. maybe it is assuming that it's
>>>> being
>>>> run inside a console and reading CONIN$ or writing to CONOUT$ without
>>>> checking whether they can be opened.  When you run it from Rterm, Rterm
>>>> is
>>>> in a console, which appears to be good enough.
>>>>
>>>> So it may be anyone who wants to use it will have to contact Microsoft to
>>>> find out how...
>>>>
>>>> Duncan Murdoch
>>>>
>>>>         
>>>>> Uwe
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 07.01.2010 12:25, Gabor Grothendieck wrote:
>>>>>           
>>>>>> I get a problem with shell too:
>>>>>>
>>>>>> Under Rgui:
>>>>>>
>>>>>>             
>>>>>>> R.version.string
>>>>>>>               
>>>>>> [1] "R version 2.10.1 Patched (2010-01-01 r50884)"
>>>>>>
>>>>>>             
>>>>>>> system("C:\\windows\\system32\\find /?", intern = TRUE)
>>>>>>>               
>>>>>> character(0)
>>>>>>
>>>>>>             
>>>>>>> system("cmd /c C:\\windows\\system32\\find /?", intern = TRUE)
>>>>>>>               
>>>>>> character(0)
>>>>>>
>>>>>>             
>>>>>>> shell("C:\\windows\\system32\\find /?")
>>>>>>>               
>>>>>> Warning message:
>>>>>> In shell("C:\\windows\\system32\\find /?") :
>>>>>>  'C:\windows\system32\find /?' execution failed with error code 1
>>>>>>
>>>>>> They all work, i.e. they give the required help message, under Rterm
>>>>>> and when I issue this from the Windows console it works:
>>>>>> C:\windows\system32\find /?
>>>>>>
>>>>>>
>>>>>> 2010/1/7 Uwe Ligges<ligges at statistik.tu-dortmund.de>:
>>>>>>             
>>>>>>> On 07.01.2010 02:04, Gabor Grothendieck wrote:
>>>>>>>               
>>>>>>>> If you have C:\Rtools\bin on your PATH note that it contains a
>>>>>>>> UNIX-like find utility that conflicts with the find utility in
>>>>>>>> Windows.  If that is the problem then remove that from your PATH and
>>>>>>>> then run the batch file.
>>>>>>>>
>>>>>>>> The batchfiles distribution at http://batchfiles.googlecode.com  has
>>>>>>>> utilities (Rgui.bat, R.bat, Rtools.bat, etc.) that will automatically
>>>>>>>> add C:\Rtools\bin to your path temporarily or only while R is running
>>>>>>>> so that you can leave it off your PATH.
>>>>>>>>                 
>>>>>>> I guess it's the use of system() rather than shell() that causes the
>>>>>>> problem. Under Windows, you have to use shell in order to start a
>>>>>>> command
>>>>>>> interpreter.
>>>>>>>
>>>>>>> Uwe Ligges
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> On Wed, Jan 6, 2010 at 6:51 PM, John Schexnayder<jschex at us.ibm.com>
>>>>>>>>  wrote:
>>>>>>>>                 
>>>>>>>>> This is sort of a strange bug.  Not show stopping, but annoying.  I
>>>>>>>>> was
>>>>>>>>> wondering if anyone else has noticed this and reported it before I
>>>>>>>>> submit
>>>>>>>>> a bug report.
>>>>>>>>>
>>>>>>>>> I noticed while running the RGui and attempting to debug one of my
>>>>>>>>> scripts
>>>>>>>>> that I encountered a Windows error informing me that "Find String
>>>>>>>>> [grep]
>>>>>>>>> Utility has encountered a problem and needs to close."  It is being
>>>>>>>>> generated by a call to a DOS batch file which contains a call to
>>>>>>>>> Find.exe.
>>>>>>>>>  It can be reproduced by simply typing  "System("find")" in RGui.
>>>>>>>>>  What I
>>>>>>>>> found strange is that I have been running this script daily without
>>>>>>>>> this
>>>>>>>>> problem for months.  I now realize I never ran that portion of the
>>>>>>>>> script
>>>>>>>>> while in RGui.exe.  It has always run in batch mode which is done by
>>>>>>>>> Rterm.exe.
>>>>>>>>>
>>>>>>>>> I have tried this on three separate machines now all running Windows
>>>>>>>>> XP
>>>>>>>>> SP3, with versions of R 2.8.1 and R 2.10.1  If executing
>>>>>>>>> "System("find")
>>>>>>>>> under RGui, an error window for the Find String Utility is generated
>>>>>>>>> and
>>>>>>>>> the command is not exectuted.  If the same command is issued in
>>>>>>>>> Rterm
>>>>>>>>> the
>>>>>>>>> expected "FIND: Parameter format not correct" message is properly
>>>>>>>>> returned.
>>>>>>>>>
>>>>>>>>> It doesn't seem an important bug, but it could be the canary in the
>>>>>>>>> mine
>>>>>>>>> for a larger problem somewhere down the road.
>>>>>>>>>
>>>>>>>>> Re,
>>>>>>>>> John Schexnayder
>>>>>>>>>
>>>>>>>>> IBM Tape Manufacturing - Information Technology
>>>>>>>>> San Jose, CA  95138
>>>>>>>>> JSchex at us.ibm.com
>>>>>>>>>
>>>>>>>>>       [[alternative HTML version deleted]]
>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> 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.
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>> ______________________________________________
>>>>>>>> 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.
>>>>>>>>                 
>>>>> ______________________________________________
>>>>> 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.
>>>>>           
>>     
>
> ______________________________________________
> 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.
>



More information about the R-help mailing list