在批处理文件目录上升级

问题描述 投票:0回答:1

我想在批处理文件上使用一个目录路径,该路径将从人变为人(它在共享文件夹中),并且需要访问一个祖父文件夹。

现在我有以下内容:

"%CD%\R\R-3.4.2\bin\i386\R.exe" CMD BATCH "%CD%\run.R"

当R文件夹与run.R文件位于同一级别时,这种方法有效。但是现在我想使用以下结构:

-R
-dashboards/folder1/run.R

即,R文件夹和仪表板文件夹在同一级别,run.R是仪表板文件夹下面的两个级别。

我正在寻求帮助,以便将正确的目录转到批处理文件中的R文件夹。

提前致谢

r windows batch-file directory
1个回答
0
投票

如果您将代码放在Windows批处理文件中此答案的末尾,则会运行run.R

  • run.R在当前目录中
  • 注册表中引用了R(默认R安装的情况就是如此)

可选地,用户可以通过定义R_HOME批处理变量以指向R的当前版本来指定R的位置

set R_HOME=C:\Program Files\R\R-3.4.1
... now run batch file ...

如果R不在注册表中,或者如果它们有多个版本的R并且不想使用当前注册的R,则他们可能希望这样做。在通常的情况下,没有必要。

这有效地解除了R的位置和run.R的位置,使其可以独立于R的位置放置在任何位置。

@echo off
setlocal
if not defined R_HOME for /f "tokens=2*" %%a in (
    'reg query hklm\software\wow6432Node\r-core\r /v InstallPath 2^>NUL ^| findstr InstallPath'
    ) do set R_HOME=%%~b
"%R_HOME%\bin\R" BATCH run.R
© www.soinside.com 2019 - 2024. All rights reserved.