首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在R中启动shell()中的OneDrive会被卡住

在R中启动shell()中的OneDrive会被卡住
EN

Stack Overflow用户
提问于 2022-05-19 15:14:45
回答 1查看 178关注 0票数 0

我最近问了这个问题:Import synced OneDrive files,但没有给出明确的答案,尽管它让我更多地使用了shell()命令。

我想做以下几点:

代码语言:javascript
复制
observe({
    invalidateLater(60*1000, session)
    shell("cd C:/Users/xxx/AppData/Local/Microsoft/OneDrive && onedrive.exe /reset")
    shell("cd C:/Users/xxx/AppData/Local/Microsoft/OneDrive && onedrive.exe")
    list <- list.files(path = "../../folder/folder", pattern = ".xlsx", recursive = T)
    
    ...
})

这背后的想法是强制关闭OneDrive并重新启动它,以强制进行新的同步,而不需要物理打开文件。

使用第一个shell命令,OneDrive会很快关闭。然而,在第二个命令中,我的R被卡住了。它将向我展示以下信息:

代码语言:javascript
复制
[OneAuth:Error:9zj9x:00000000-0000-0000-0000-000000000000] OneAuth is not configured
[OneAuth:Error:9zj9x:00000000-0000-0000-0000-000000000000] OneAuth is not configured
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [0]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [0]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [1]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [1]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [2]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [2]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [3]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [3]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [4]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [4]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [5]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [5]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [6]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [6]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [7]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [7]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [8]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [8]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [9]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [9]
[OneAuth:Info:9zkae:xxx] Start task AcquireCredentialSilently [10]
[OneAuth:Info:9zkad:xxx] Finish task AcquireCredentialSilently [10]

我可以看到文件在OneDrive中是同步的,但是即使所有文件都是同步的,R进程也没有停止。当我试图关闭该过程时,它会告诉我:

子进程没有响应。R会终止它

有什么解决办法吗?我也想知道是什么原因造成了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-20 10:20:48

wait = F放在shell函数中,似乎得到了这样的回答:

代码语言:javascript
复制
shell("cd C:/Users/xxx/AppData/Local/Microsoft/OneDrive && onedrive.exe", wait = F)

这样,启动OneDrive将是一个后台进程,而不是启动子进程。如果您想确保其余的代码只有在OneDrive完全重新生成之后才能运行,那么您可以使用Sys.sleep()。此外,请确保您的invalidateLater计时器足够大,以便在同步期间不重置OneDrive。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72307068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档