在批处理文件目录上升级

时间:2017-12-20 17:17:37

标签: r windows batch-file directory

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

现在我有以下内容:

"%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文件夹。

提前致谢

1 个答案:

答案 0 :(得分: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