我有一些工作人员,我想分享一些R脚本和其他各种各样的东西。 这就要求他们有一个R的实例,随之而来的是Rtools的启动和运行。 添加一些东西到path是非常容易的脚本,但从Windows命令行安装R和Rtools是不(至less谷歌search“从Windows命令行安装R”是没有生产力)。
我怎样才能从Windowsterminal安装R和RTools到C:\
目录(这可以做成一个.bat文件的点击分布)?
您正在查找/VERYSILENT
标志,请参阅R faq
编辑:忘了/DIR="C:\"
标志
我不得不学习一些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\" )
FWIW这是我使用的。 R和Rstudio的巧克力包可以正常工作以获得最新版本。 然后,我使用批处理脚本获取最新的Rtools。 请注意,我假设你有卷曲和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
用巧克力安装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