I need to execute an external tool from R
and process errors (if any) occurred in that tool.
I know 3 functions to do something familiar with my task:
shell, system and system2.
Trying to test those, I see that command
shell("notepad")
opens notepad. As far as I know shell doesn't allow to check errors (there's no interface to look into stderr
).
When I call
system("notepad")
or
system2("notepad")
R
freezes trying to make those commands.
Calling
system("start notepad")
or
system2("start notepad")
returns warning
Warning message:
running command '"start notepad"' had status 127
As I mentioned in my comments, the R documentation reveals that in Windows the system()
function does not launch a separate shell (if needed). This is why command line commands run with system()
, but Notepad, which needs a separate window, does not run:
From the documentation for system()
:
The most important difference is that on a Unix-alike system launches a shell which then runs command. On Windows the command is run directly – use shell for an interface which runs command via a shell (by default the Windows shell cmd.exe, which has many differences from a POSIX shell).