2017-12-20 9 views
0

バッチファイルで、人から人に(ディレクトリは共有フォルダ内にある)変更され、祖父母フォルダにアクセスする必要があるディレクトリパスを使用したいと考えています。バッチファイルディレクトリのレベルに上がる

今、私は次のようにあります

"%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は内部のダッシュボードフォルダの下にある2つのレベルです。

私は、正しいディレクトリをバッチファイル上の自分のRフォルダに入れるように助けを求めています。あなたは、Windowsのバッチファイルでこの回答の末尾にコードを配置する場合は、事前

+2

の場所のどこにでも独立して配置できるようにすることrun.Rの場所を分離します。二重 '..'は親フォルダを表します。だから '.. \ ..'は祖父母を表します。 – Squashman

+0

@スカッシュマンそれは働いて、ありがとう! –

答えて

0

おかげで、それは

  • run.Rが現在のディレクトリにあると
  • ことを提供 run.Rを実行します
  • Rはレジストリで参照されます(デフォルトRインストールの場合)

オプションで、ユーザーはRの場所を指定できますR_HOMEバッチ変数はR

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

の現在のバージョンを指すように定義することによって、彼らは、Rは、レジストリまたは、彼らはRの複数のバージョンがあり、使用しない場合ではない場合ことをしたいと思うかもしれません現在登録されている通常の場合、それは必要ではないでしょう。

これは効果的に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 
関連する問題