> cat(file="foo.txt", "Hello world\n") > shell('find "Hello" < foo.txt') Hello world > shell('find "Hello" < foo.txt', intern=TRUE) [1] "Hello world"
> shell('type foo.txt | find "Hello"') Hello world > shell('type foo.txt | find "Hello"', intern=TRUE) [1] "Hello world" A person at http://www.experts-exchange.com/Programming/Misc/Q_20857955.html give the hypotheses that the 'Errorlevel' returned is not from whether 'find.exe' was executed or not, but whether find finds the string or not. This is consistent with: > res <- shell('find "Hello" < foo.txt'); Hello world > res [1] 0 > res <- shell('find "Hellor" < foo.txt'); Warning message: In shell("find \"Hellor\" < foo.txt") : 'find "Hellor" < foo.txt' execution failed with error code 1 > res [1] 1 I still don't understand their argument why you have to redirect/pipe in the foo.txt file for it to work; > shell('find "Hello" foo.txt') Warning message: In shell("find \"Hello\" foo.txt") : 'find "Hello" foo.txt' execution failed with error code 1 > shell('find "Hello" foo.txt', intern=TRUE) character(0) /Henrik 2010/1/10 hb <h...@stat.berkeley.edu>: > 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 <h...@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 <murd...@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 <murd...@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 <murd...@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<lig...@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<jsc...@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 >>>>>>>>>>>> jsc...@us.ibm.com >>>>>>>>>>>> >>>>>>>>>>>> [[alternative HTML version deleted]] >>>>>>>>>>>> >>>>>>>>>>>> ______________________________________________ >>>>>>>>>>>> R-help@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@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@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@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@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@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.