Needs to be using svDialogs
? Apparently, it only works in interactive mode or in it (running inside the RStudio
).
- Is there any way the pop-up can be displayed by running the code through the file . bat?
1) Yes, using the Tc/ltk, option that works outside of Rstudio, I mean, outside the interactive mode, and that already comes with the latest versions of r.
2) The alternative with the use of Tc/ltk and that works in the bat/cmd
a) Or you enter the R folder runs:
cd /d "C:\Program Files\R\R-3.6.1\bin\i386" && Rscript.exe Script.R
b) Or you can do your bat/cmd create your Rscript
to excommunicate you in running time, and without using escaping
:
@;echo off && setlocal && mode 70,10 & color 0A & title ..\%~dpnx0
@;
@;<con: pushd "C:\Program Files\R\R-4.0.5\bin\i386\." 2>nul && =;(
@;cmd/r %__APPDIR__%findstr.exe /vb @; ^<"%~f0">"%temp%\RScr.r")=;
@;R.exe --vanilla <"%tmp%\RScr.r">nul 2>&1 &&(del/q "%tmp%\RScr.r"
@;endlocal & goto :EOF )||(del/q "%temp%\RScr.r" 2>nul && endlocal
@;echo[Error: Path para R/Rscript nao encontrado^!! & goto :EOF);=
@;
@; Nas linhas abaixo entraram o código R, mas sem iniciar com "@;"
require(tcltk)
msgBox <- tkmessageBox(title = "tc/ltk SO Q431647",
message = "Hello, world! by tcltk!", icon = "info", type = "ok")
msgBox <- tkmessageBox(title = "zOk Click..",
message = "z0k", type = "ok")
Obs.: The lines of the above code are executed by the command interpreter, and it exited execution at: goto :EOF
, are also filtered to the script R
, all that nay begin with the characters @;
, then realize that your code in R
, will have this limitation only, no line can start with @;
- 1) Save this code in your
Script.R
:
require(tcltk)
msgBox <- tkmessageBox(title = "tc/ltk SO Q431647",
message = "Hello, world! by tcltk!", icon = "info", type = "ok")
msgBox <- tkmessageBox(title = "zOk Click..",
message = "z0k", type = "ok")
- 2) Save this code in your
bat/cmd
:
@echo off && setlocal && mode 70,10 && color 0A && title %~dpnx0
pushd "C:\Program Files\R\R-3.6.1\bin\i386\." && R.exe --vanilla <"d:\caminho\do\seu\RScriptR.r"
popd && endlocal && goto :EOF
echo off
inibir eco do comando na sáida do prompt
setlocal
herdar as variáveis da sessão ambiente atual
mode 70,10
muda tamanho da janela p 70 colunas 10 linhas
color 0A
muda cor de fundo para preto e a fonte verde claro
title %~dpnx0
atribuir titulo da janela com: d=drive p=path n=name x ext do bat
pushd "c:\..."
faz a pasta atual ser salva para retorno (via popd) e traz para pila a pasta
&& (
caso a execução anterior se deu se erro, vai executar as ações dentro enfileiradas dentro do ()
cmd /r type "%~f0"
vai direcionar o conteúdo do arquivo bat (fullpath %~f0) para o findstr
findstr /vb ^@ |%__APPDIR__%findstr /vb ^@; >"%temp%\RScr.r")
vai ignorar todas as linhas iniciadas por "@;", e redirecionar como conteúdo para o arquivo >"%temp%\RScr.r" (gravar nele)
@;R.exe --vanilla <"%tmp%\RScr.r" 2>&1>&0
executar o escript apontado pelo operador < file. ignorando arquivos e avariável R_LIBS_USER local do usuário.
&& (del "%temp%\RScr.r"
se a execução se deu sem erro, vai apagar o script criado (temporário), finalizar o local, (endlocal) e ir para o final do arquivo, sair.. (executando o que esta em ()
||(del "%temp%\RScr.r" 2>nul && ;endlocal
@;echo[Error: Path para R/Rscript não encontrado^!! & goto :EOF )
se a execução decorrer em erro(s), vai exibir uma mensagem, sugerindo que o erro está no caminho, vai apagar o script temporário, finalizar o local, (endlocal) e ir para o final do arquivo, sair..
@;:: Nas linhas abaixo entra o código R, mas sem iniciar com "@;"
Apenas um comentário lembrado da limitação para autoria de código em script R
The difference is that one section is interactive and the other is not. For more information see
?interactive()
– Tomás Barcellos