У меня есть проект, структура которого выглядит так:
-Y: / fake_project ---.Вот --- fake_subfolder / ------ fake_script.R
fake_script.R
выглядит так:
root.dpath <- here::here()
print(root.dpath)
Ожидаемое поведение таково, что Y:/fake_project
печатается, как и должно быть директория, полученная из here::here()
поскольку именно там находится файл .here
Такое поведение достигается, если я запускаю свой скрипт из командного файла run.bat
, который выглядит так:
cmd /k C:\PROGRA~1\R\R-36~1.3/bin\Rscript.exe "Y:/fake_project/fake_subfolder/fake_script.R"
Что выводит:
[1] "Y:/fake_project"
Однако, если я программирую автоматизированную задачу в Windows планировщике задач, результат будет другим, поскольку задача выполняет сценарий, но на выходе будет:
[1] "C:/Windows/System32"
Автоматизированная задача имеет ту же самую команду для запуска в «Действиях» в свойствах задачи. Результаты одинаковы на машинах с серверной ОС Windows 10 и Windows.
Я хотел бы избежать жесткого кодирования любого пути в моем скрипте и использовать относительные пути, как в here()
Есть идеи, как изменить автоматическую задачу, чтобы правильно распознавать родительскую папку, используя here::here()
или аналогичные функции R?
Спасибо!