安装R&来自Windows终端的RTools

时间:2016-05-26 14:41:50

标签: r windows batch-file

我有很多人@工作,我想分享一些R脚本和其他各种各样的好东西。这要求他们有一个R的实例并伴随Rtools启动并运行在他们的路径上。在脚本中添加一些内容非常容易,但是从Windows命令行安装R和Rtools不是(至少谷歌搜索"从Windows命令行安装R"没有效率)。

如何将Windows终端中的R和RTools安装到C:\级别目录中(可以将其设置为.bat文件以进行可点击分发)?

3 个答案:

答案 0 :(得分:2)

我必须学习一些bash,但这个脚本似乎有效:

@echo off
If NOT exist "C:\R\R-3.3.0"\ (
bitsadmin  /transfer mydownloadjob  /download  /priority normal  ^
                  https://cran.r-project.org/bin/windows/base/R-3.3.0-win.exe C:\\Users\\%username%\Downloads\R-3.3.0-win.exe

C:\\Users\\%username%\Downloads\R-3.3.0-win.exe /VERYSILENT /DIR="C:\R\R-3.3.0"               
) 

If NOT exist "C:\Rtools\"\ (
bitsadmin  /transfer mydownloadjob  /download  /priority normal  ^
                  https://cran.r-project.org/bin/windows/Rtools/Rtools33.exe C:\\Users\\%username%\Downloads\Rtools33.exe

C:\\Users\\%username%\Downloads\Rtools33.exe /VERYSILENT /DIR="C:\Rtools\"
) 

答案 1 :(得分:1)

FWIW这是我使用的。 R和Rstudio的巧克力包可以很好地获得最新版本。然后,我使用批处理脚本来获取最新的Rtools。注意,我假设你有curl和grep可用。以管理员身份运行,我将这些内容与安装所有内容的主脚本分开调用,但您可以将其包装成一个。

获得巧克力

@echo off
setlocal
where choco > NUL || goto :getChoco
goto :EOF

:: chocolatey
:: https://github.com/chocolatey/choco/wiki/Installation
:getChoco
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

:EOF

使用choco安装R

@echo off
setlocal
:: https://chocolatey.org/packages
choco install -y r.project

安装最新的Rtools

@echo off
setlocal EnableExtensions
pushd "%~dp0"

set "uri=https://stat.ethz.ch/CRAN/bin/windows/Rtools/"

:: skip if already installed
if exist c:\Rtools goto :EOF

:: find latest version
for /f "tokens=1" %%i in ('curl -Ls "%uri%" ^|
                          grep -Poi -m 1 "Rtools[0-9]+\.exe"') do (
    set "latest=%%i"
)
if "x%latest%"=="x" (
    echo.error: Latest version of Rtools not found
    goto :EOF
)

:download
if not exist Rtools.exe (
    echo.Downloading Rtools from %uri%%latest%
    curl -Lo Rtools.exe "%uri%%latest%"
)

:install
if exist Rtools.exe (
   Rtools.exe /SILENT /SP- /NORESTART
) else echo.error: Rtools.exe not found
if exist "C:\Rtools" del Rtools.exe

popd
:EOF

答案 2 :(得分:0)

您正在寻找testList标志,请参阅R faq

编辑:忘记了/VERYSILENT标记