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

Henrik Bengtsson hb at stat.berkeley.edu
Sun Jan 10 16:53:35 CET 2010


Article ID: 106203 - Last Review: November 1, 2006 - Revision: 3.1
FIND.EXE Does Not Return the Proper Errorlevel in Windows NT
http://support.microsoft.com/kb/106203

/Henrik

On Sun, Jan 10, 2010 at 5:39 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> 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.
>>
>
> ______________________________________________
> 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