将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

2024-06-28

嗨,我是 Windows 批处理新手。

我想向打电话的同事分发一个 runMe.bat 文件Rscript myRfile.R处理一些数据文件。但众所周知,我的同事在不同地方安装了 R,我不能指望他们知道如何将 Rscript 添加到 PATH 甚至在 R 中编写代码。

我希望 .bat 文件查找最新安装的 R 的路径并将 [该目录]\bin\i386\ 临时添加到 PATH 中。

我想象:

  • 迭代子文件夹 https://stackoverflow.com/questions/445167/how-can-i-get-the-value-of-a-registry-key-from-within-a-batch-script登记处HKEY_LOCAL_MACHINE\Software\Rcore\R\查找最后一个和最新的 R 版本文件夹

  • in this registry subdirectory get the **installPath** e.g. keyValue = "c:\R\R-3.2.2\"

  • concatenate with "\bin\i386\" -> c:\R\R-3.2.2\bin\i386\ ->Rpath

  • PATH%PATH%;Rpath

  • Rscript myRfile.R

我希望 Rpath 不永久添加到 PATH 中。无论如何,我的同事可能拥有相当有限的 Windows 管理员权限。

非常感谢!

额外奖励:我的公司主要安装 32 位 Windows 操作系统,但会在不久的将来进行升级。我不介意只执行 R i386 版本。运行时和内存要求。是很谦虚的。


我认为像下面这样的东西会做你想要的:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET RKEY=
SET RPATH=
FOR /F "tokens=* skip=2" %%L IN ('reg.exe QUERY HKLM\Software\R-core\R /f * /k ^| sort') DO (
    IF NOT "%%~L"=="" SET "RKEY=%%~L"
)
IF NOT DEFINED RKEY (
    ECHO Unable to qyery registry key HKLM\Software\Rcore\R
    EXIT /B 1
)
FOR /F "tokens=2* skip=2" %%A IN ('REG QUERY %RKEY% /v "installPath"') DO (
    IF NOT "%%~B"=="" SET "RPATH=%%~B"
)
IF NOT DEFINED RPATH (
    ECHO Unable to query registry value %RKEY%\installPath
    EXIT /B 2
)
IF NOT EXIST "%RPATH%" (
    ECHO Found path for R (%RPATH%^) does not exist
    EXIT /B 3
)
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
    SET "PATH=%RPATH%\bin\x64;%PATH%"
) ELSE (
    SET "PATH=%RPATH%\bin\i386;%PATH%"
)
Rscript myscript.r

首先,我们启用“本地”模式,因此当批处理文件退出时,我们设置的所有变量都将恢复(即使您使用“CALL”来调用它)。接下来,我们取消设置所使用的两个变量,以便我们可以测试它们是否被后面的代码设置。

第一个 for 循环将为每个结果执行一次,因此 RKEY 最终设置为 \R 下的最后一个键,并且排序将有望对它们进行排序,以便最新的安装将最终结束。内部 if 语句只是为了确保忽略空白行。

接下来是基本的错误检查,以确保设置了 rkey(例如,如果注册表项不存在)。

下一个 for 循环应该只迭代一次,并仅从所选键的 installPath 值中提取值部分。 for 只是用来跳过不相关的行和标记。然后测试是否找到该值,以及找到的值是否实际存在。

最后,根据架构更新路径,并运行脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10 的相关文章

  • 如何使用 Windows 上运行的 Java 服务检测用户活动?

    我的目标是使用 Java 创建一个系统监控应用程序 我想知道用户何时在 Windows PC 上进行活动 结果会是这样的 8 00 8 15 活动 9 12 10 29 活动 12 24 15 34 活动 我对任何其他信息 按下了哪个键 使
  • 合并结果的行数多于一个数据框

    我有两个数据框 第一个包含 9994 行 第二个包含 60431 行 我想合并两个数据框 以便合并后的数据框包含两个数据框的组合列 但只包含 9994 行 但是 合并后我得到了超过 9994 行 我怎样才能确保这种情况不会发生 df1 re
  • 在 ggplot2 中隐藏单个几何图例

    我将相同的变量 颜色 映射到两个不同几何图形中的颜色 我希望它们要么出现在单独的图例中 DHJ 和 EFI 要么最好完全跳过第二个图例 对于 E F 和 I 目前 R 将两者混合在一起 并给我一个图例 其中按字母顺序列出了 DEFHIJ 所
  • Windows 故障转储调用堆栈仅显示 wow64

    Problem 我有一个我们开发的供内部使用的 Windows 应用程序 感谢 Windows 错误处理 窗口保持打开状态 我可以轻松地从任务管理器生成故障转储 我以前曾通过 eclipse 在 linux 上使用过一次故障转储 但这是第一
  • 在 R 中提取栅格的最快方法(提高我的可重现代码的时间)

    我想知道我是否已最大化提取栅格中某个点周围缓冲区域平均值的速度 本地的性能可以进一步提高吗 I use parallel mclapply已经 我知道我可以通过在集群上设置和运行它来获得进一步的收益 使用集群或获得更多的CPU不是我正在寻找
  • 字符串比较在 PowerShell 函数中不起作用 - 我做错了什么?

    我正在尝试创建一个别名git commit它还将消息记录到单独的文本文件中 然而 如果git commit回报 nothing to commit working directory clean 它不应该将任何内容记录到单独的文件中 这是我
  • 适用于 Windows 的视频捕获 SDK 和框架 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我找不到描述 Windows 中视频捕获的所有不同选项的列表 我想将此列表保留给非专有 SDK 即 ImageSource 有自己的
  • 如何在其他脚本中包含(源)R 脚本

    我创建了一个实用程序 R 脚本 util R 我想从项目中的其他脚本中使用它 确保此脚本定义的函数可在我的其他脚本中运行的正确方法是什么 我正在寻找类似的东西require函数 仅在尚未加载的情况下加载包 我不想打电话source util
  • 如何在 Windows 中使用 pypy 作为 CPython Jupyter 的内核?

    我使用以下命令安装了 pythonAnaconda 安装程序 http anaconda 20installer我很高兴使用它附带的 Jupyter 版本 我也下载了 32 位 windows 版本的 pypy https bitbucke
  • 张量流:RStudio 中的 [NOT FOUND] 错误

    我尝试在中运行以下代码RStudio library tensorflow x data lt runif 100 min 0 max 1 y data lt x data 0 1 0 3 W lt tf Variable tf rando
  • C++编程风格

    我是一名老 但不是太老 Java 程序员 决定学习 C 但我见过很多 C 编程风格 嗯 实在是太丑了 将类定义放在头文件中 并将方法放在不同的源文件中的所有内容 突然调用函数 而不是使用方法课堂内 这一切似乎 都是错误的 那么最后 我还有什
  • 照片与 r 中的图形对齐

    首先我想我需要在powerpoint中手动完成它 然后我想如果有解决方案的话可以尝试使用R 这是我的示例数据 set seed 123 myd lt expand grid cat LETTERS 1 5 cond c F T phase
  • int NA 的内部表示[重复]

    这个问题在这里已经有答案了 这是关于 R 内部结构的问题 R 中如何表示整数 NA 值 与浮点不同 没有神奇的位序列来表示 NaN Create big array newer versions of R won t allocate me
  • GGplot为点添加数据标签

    如何使用 ggplot 将数据标签添加到点 我有一个名为 stacked 的堆叠数据框 gt head stacked time value variable 1 100 152 2211 gg 2 110 146 3304 gg 3 11
  • 为什么 RDP 与其他远程控制软件相比如此快?

    我使用基于 RDP 的 Windows 远程客户端桌面实用程序从笔记本电脑连接到桌面 它比 TeamViewer 等远程控制应用程序更快 更美观 出于好奇 为什么 RDP 更好 谢谢 RDP 是一种允许传输低级屏幕绘制操作的特定协议 它还知
  • 在 R 中创建多维 NetCDF

    我正在尝试使用 R 包创建多维 NetCDF 文件ncdf http cran r project org web packages ncdf index html 我正在对一组 1500 个点进行气候日常观测 每个点的观测数量约为 182
  • 使Sweave + RweaveHTML将所有图形放在指定文件夹中

    作为细化这个问题 https stackoverflow com questions 4674567 how to make sweave copy generated graphics to a subfolder 有谁知道如何告诉 Sw
  • update() 具有局部协变量的函数内的模型

    我需要从函数内部更新回归模型 理想情况下 该函数应该适用于任何类型的模型 lm glm multinom clm 更准确地说 我需要添加函数内部定义的一个或多个协变量 这是一个例子 MyUpdate lt function model ra
  • 尽管包在本地构建并通过了所有检查,但 CRAN 上的自动包提交错误

    我正在尝试向 CRAN 提交包 但它未通过一些自动检查 https win builder r project org incoming pretest influenceR 0 1 3 20230517 194638 Debian 00c
  • 在 cmd 上使用 Cygwin 命令进行彩色输出

    操作系统 Windows XP SP3 不幸的是 我已经下载并安装了最新版本的 Cygwin 和 Git 我还配置了我的环境 以在系统路径中包含每个文件夹的 bin 文件夹 并设置用户变量 TERM msys 我现在可以进入 cmd 并使用

随机推荐

  • Cython、CMake和setup.py、python在一个子目录下编译两次

    我正在尝试按照以下结构与 Cython 绑定一起构建 C 库https bloerg net 2012 11 10 cmake and distutils html https bloerg net 2012 11 10 cmake and
  • 在 BASH 中按字节读取文件

    我需要读取指定文件的第一个字节 然后读取第二个字节 第三个字节 依此类推 我怎样才能在 BASH 上做到这一点 P S 我需要获取这个字节的十六进制 完全重写 2019 年 9 月 比以前的版本更短更简单 速度更快 但没那么快 Yes ba
  • Numpy 矩阵到 tkinter 画布

    如何将 Numpy 矩阵作为位图显示到 Tkinter 画布中 更准确地说 如何填写PhotoImage来自矩阵的内容 photo ImageTk PhotoImage self canvas create image 0 0 image
  • 改变了 (un)serialize() 的行为?

    编辑 问题是现在已记录的 php 错误 https bugs php net bug php id 71617 https bugs php net bug php id 71617感谢您找到那个 Danack 我刚刚将应用程序从 PHPH
  • Shapeless 中 TypeClass 特征的 emptyCoproduct 和 coproduct 方法的用途是什么

    我并不完全清楚这样做的目的是什么emptyCoProduct and coproduct的方法TypeClass无形中的特质 什么时候会使用TypeClass特质而不是ProductTypeClass 这两种方法的实施方式有哪些示例 假设我
  • 使用php从图像中获取第一个像素

    我正在尝试获取图像的第一个像素 最好是最左上角或最右上角的一个像素 我看到了这个问题 它有最接近我的问题的答案 获取图像颜色 https stackoverflow com questions 1746530 get image color
  • 在 AngularJs 中设置动态作用域变量 -scope.

    我有一根绳子 是从routeParam或指令属性或其他什么 我想基于此在范围上创建一个变量 所以 scope
  • 如何使用Caliper进行基准测试?

    我试图弄清楚如何使用 Caliper 在 Eclipse 中进行基准测试 但一无所获 我尝试按照此处找到的 26 分钟教程进行操作 https code google com p caliper https code google com
  • 表示区间或范围? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 一般来说 每当您表示任何类型的范围时 您都可以选择为范围的开始和结束选择哪些类型的值 例如 如果您想要一个包含整数 1 2 3 4 5 的范围
  • 如何读取Flask函数中隐藏的表单数据[重复]

    这个问题在这里已经有答案了 我正在为 Flask 应用程序做一个作业 该应用程序的函数根据 index html 页面上表单中隐藏字段的值执行不同的操作 我只有两条路线 index html 和 process 对index html执行操
  • 如何使用javascript将div从左向右移动

    I have div named movingImage每次单击按钮时我都想向右移动 50px 这是我的 JavaScript function moving Image document getElementById movingImag
  • 为什么 Xcode 会在钥匙串中自动安装(重复且过期的)证书? [复制]

    这个问题在这里已经有答案了 可能的重复 xCode 4 重新安装我删除的钥匙串证书 https stackoverflow com questions 5264481 xcode 4 reinstalls keychain certs th
  • MATLAB:检测并删除 2 列矩阵中的镜像对

    我有一个矩阵 1 2 3 6 7 1 2 1 并想删除镜像对 即输出将是 1 2 3 6 7 1 or 3 6 7 1 2 1 有没有一种简单的方法可以做到这一点 我可以想象一个复杂的 for 循环 例如 或不会删除原始对的版本 仅删除重复
  • swift - 仅在落地时跳跃

    我希望限制我的角色 猫 使其仅在地面 虚拟 SKNode 或树上 treeP SKNode 时跳跃 目前我没有任何限制touchesBegan因此 如果用户快速连续点击 猫就能够在空中飞翔 虽然这在其他游戏中可能很有用 但在这里不受欢迎 如
  • 如何处理 Volley StringRequest 中的空值

    我有一个返回 2 组不同值的响应 在每种情况下 都会有一个值always为空 另一个将为空always包含一个值 问题是 Volley 不允许我分配 null JSON 值或在 if 语句中检查 JSON 值 它只是指 catch 块 我正
  • Chrome getUserMedia 未在本地请求权限

    我正在尝试在 Chrome 中使用 navigator getUserMedia 但是 它在本地提供时不会请求权限 file whatever index html 但在 JSFiddle 上会请求权限 http jsfiddle net
  • flex 4 tabbar - 禁用选项卡

    有没有一种常见的方法可以在 Flex 4 中禁用 Spark TabBar 组件的选项卡 使用 mx tabnavigator 组件 您可以禁用与选项卡相对应的内容 然后选项卡也会被禁用 但是使用 Spark 选项卡栏组件执行此操作只会禁用
  • 如何正确处理聊天消息应用程序的“已读”-“未读”状态?

    我目前正在开发一个反应本机应用程序 该应用程序使用 socket io 提供聊天室功能 我目前愿意处理消息的未读 已读状态 但我不知道该逻辑应位于何处 在客户端代码中还是在服务器端 这是我的代码组件的基本实现
  • Flutter中如何获取当前路由路径?

    在实施的同时持久底部栏 https stackoverflow com questions 45511549 permanent view with navigation bar in flutter 以前的路线需要恢复 https git
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT