我一直在 Windows 10 中撰寫一個批處理腳本,它想要順序執行兩個 R 腳本,一個使用 32 位 R,另一個使用 64 位 R。為了在我共享此批處理腳本的任何計算機上執行此操作,我需要確定使用此批處理腳本的計算機中現有 R32bit 和 R64bit 安裝的位置。
在 R 中,可以通過以下方式識別注冊表中的檔案夾路徑:
# find the path to a R32bit and 64bit R installations
fp32 <- file.path("SOFTWARE", "R-core", "R32", fsep="\\")
fp64 <- file.path("SOFTWARE", "R-core", "R64", fsep="\\")
# build the Rscript paths
32bit_Rscript <- paste0(readRegistry(fp32, "HLM")$InstallPath,"\\bin\\i386\\Rscript.exe")
64bit_Rscript <- paste0(readRegistry(fp64, "HLM")$InstallPath,"\\bin\\x64\\Rscript.exe")
但是,我還沒有找到通過 Windows 批處理腳本執行此操作的方法。我能夠檢索鍵值:
reg query HKLM\SOFTWARE\R-core\R32 /v InstallPath
reg query HKLM\SOFTWARE\R-core\R64 /v InstallPath
但是,此查詢回傳許多值,包括我想要的檔案夾路徑,例如:
HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R64
InstallPath REG_SZ C:\Program Files\R\R-3.6.1
問題:我怎樣才能從這個注冊表查詢中只挑出檔案夾路徑來將它分配給批處理腳本中的變數?
uj5u.com熱心網友回復:
for允許您運行命令并將其輸出作為您可以決議的行。
@echo off
setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
set v=
for /F "tokens=2,*" %%a in ('2^>nul reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentVersion"^|find "REG_"') do @set v=%%b
if defined v echo.The value is %v%
(查詢的值已更改,因此它適用于運行此示例的每個人。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515738.html
標籤:r视窗批处理文件
下一篇:啟動回圈時批處理不會隨機作業
