批处理运行共享文件夹R Shiny应用遇UNC路径不支持问题求助
问题原因
Windows 命令提示符(CMD)默认不支持将UNC网络路径(以\\开头的路径)作为当前工作目录,直接调用共享目录下的可执行文件或脚本时就会触发该报错,之前使用PUSHD未生效基本是因为没有配合切换工作目录、路径匹配错误导致的。
解决方案:修改批处理文件逻辑
直接替换你的RunApp.bat内容为以下代码即可:
@echo off :: 映射共享目录为临时盘符,切换到run.R所在的共享目录 PUSHD "\\192.168.x.y\sharedFolder" :: 调用当前路径下的R运行run.R,用完释放临时映射 ".\R\R-4.1.1\bin\R.exe" CMD BATCH "run.R" POPD
可选优化项
如果不需要保留运行日志.Rout文件,可换成更轻量的Rscript启动,避免生成冗余日志:
@echo off PUSHD "\\192.168.x.y\sharedFolder" ".\R\R-4.1.1\bin\Rscript.exe" "run.R" POPD
注意事项
- 确保共享文件夹
\\192.168.x.y\sharedFolder对所有局域网使用用户开放了读取&执行权限,否则会触发权限报错 - 若需要隐藏运行时的黑框窗口,可创建bat文件的快捷方式,在快捷方式属性的「运行方式」中选择「最小化」即可
- 不需要提前给用户手动映射网络盘符,PUSHD命令会自动分配临时盘符,执行完POPD会自动释放,无系统残留
内容的提问来源于stack exchange,提问作者Alejo
相关产品推荐
相关产品推荐

