当您在Windows上安装Git时,当您右键单击文件夹时,它会添加一个上下文菜单选项" Git Bash Here"。它的方式是添加如下注册表项:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\git_shell\command]
@="\"C:\\Program Files\\Git\\git-bash.exe\" \"--cd=%1\""
注意最后将cd
参数传递给程序的目录名。
我想为R(和其他程序)做类似的事情。不幸的是,R不接受cd
参数。这将启动R:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\R\command]
@="\"C:\\Program Files\\R\\R-3.4.3\\bin\\x64\\Rgui.exe\" \"--cd=%1\""
但是它给出了一条错误消息,指出cd
参数无法识别,Rgui将从默认工作目录开始,打败整个点。
我真正想要它做的是相当于这个命令:
start "R" /D %1 "C:\Program Files\R\R-3.4.3\bin\x64\Rgui.exe"
其中%1
是右键单击的文件夹。这可能吗?
答案 0 :(得分:2)
您可以编写在启动时运行的R代码并检查命令行参数。
您可以将以下代码放在C:\Program Files\R\R-3.4.3\etc\Rprofile.site
的末尾(或在启动时执行的任何其他文件):
local({
processArg <- function(arg) {
parts <- strsplit(arg, "=")[[1]]
if (length(parts) == 2) {
if (parts[1] == "R_startup_wd") {
setwd(parts[2])
}
}
}
invisible(sapply(commandArgs(FALSE), processArg))
})
它检查是否使用参数R_startup_wd=your_working_dir
调用了R,如果是,则更改工作目录。
然后你可以像R
"C:\Program Files\R\R-3.4.3\bin\x64\Rgui.exe" "R_startup_wd=your_working_dir"
请注意,参数名称不带&#34; - &#34;,即我们有R_startup_wd
而不是--R_startup_wd
。否则RGui会抱怨&#34;未知的论点&#34;
当然,您可以在没有给出参数的情况下使用R.