【发布时间】:2015-03-03 18:09:05
【问题描述】:
我想在 Windows 上的 R 中创建一个 软 符号链接到文件(使用 Mklink)。它失败了,因为我不能告诉 R “以管理员身份运行它”。有什么办法可以做到吗?
不过,我确实设法创建了硬符号文件链接:
path_src <- file.path(tempdir(), "test.txt")
write("Hello World!", file = path_src)
path_tgt <- file.path(tempdir(), "test_symlink.txt")
shell(sprintf("mklink /H %s %s",
normalizePath(path_tgt, mustWork = FALSE),
normalizePath(path_src)
))
注意path_tgt 的文件如何反映对path_src 所做的更改:
write("HELLO WORLD!", file = path_src, append = TRUE)
然而,这失败了:
path_tgt_2 <- file.path(tempdir(), "test_symlink_2.txt")
> shell(sprintf("mklink /D %s %s",
normalizePath(path_tgt_2, mustWork = FALSE),
normalizePath(path_src)
))
Ihre Berechtigungen reichen nicht aus, um diesen Vorgang auszufhren.
Warning messages:
1: running command 'C:\Windows\system32\cmd.exe /c mklink /D C:\Users\Thyson\AppData\Local\Temp\Rtmpum73ZU\test_symlink_2.txt C:\Users\Thyson\AppData\Local\Temp\Rtmpum73ZU\test.txt' had status 1
2: In shell(sprintf("mklink /D %s %s", normalizePath(path_tgt_2, mustWork = FALSE), :
'mklink /D C:\Users\Thyson\AppData\Local\Temp\Rtmpum73ZU\test_symlink_2.txt C:\Users\Thyson\AppData\Local\Temp\Rtmpum73ZU\test.txt' Ausführung mit Fehlerkode 1 fehlgeschlagen
注意
由于 Windows 的德语版本,我似乎无法获得英文错误。第一行有点类似于“您没有足够的授权来执行此过程”
【问题讨论】:
-
如需翻译,请尝试:
Sys.setenv(LANGUAGE='en') -
This seems post 建议没有附加组件是不可能的。
-
@Thomas:感谢您的指点!有点糟糕,它需要一个附加组件,但总比没有好;-) PS:我确实有 LANGUAGE = "en" (这是我所有项目的 .Renviron 文件中的一般设置)和我所有的其他“在R" 错误实际上是英文的,但
shell()命令似乎以某种方式将所有内容委托给基本操作系统级别。