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

Henrik Bengtsson hb at stat.berkeley.edu
Sun Jan 10 16:58:46 CET 2010


Forgot to say that when you use that findit.bat script, you get:

Rgui.exe:

> system("findit.bat")
Errorlevel is 1,  not found
> shell("findit.bat")
Errorlevel is 1,  not found

Rterm.exe:

> shell("findit.bat")
c:\config.sys
Errorlevel is 0,  found
> system("findit.bat")
c:\config.sys
Errorlevel is 0,  found

Windows Vista Business SP2

> sessionInfo()
R version 2.10.1 Patched (2010-01-01 r50884)
i386-pc-mingw32

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_2.10.1

/H


2010/1/10 hb <hb at stat.berkeley.edu>:
> 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