【发布时间】:2017-12-21 23:00:22
【问题描述】:
我有这个 windows 批处理文件,我使用 shell() 命令从 R 调用它。该批处理文件进行一些计算并将它们写入磁盘和屏幕上。我只对磁盘输出感兴趣。我无法更改批处理文件。
批处理文件可能有点像:
@echo off
echo 1 + 2
@echo 1 + 2 > C:\TEMP\batchoutput.txt
exit
我试过了
shell("batchfile.bat", invisible = TRUE)
1 + 2
shell("batchfile.bat", show.output.on.console = FALSE)
系统错误(cmd,实习生 = 实习生,等待 = 等待 | 实习生,show.output.on.console = 等待,: 由多个实际参数匹配的形式参数“show.output.on.console”
system("batchfile.bat", invisible = T)
1 + 2
system("batchfile.bat", show.output.on.console = F)
警告信息: 运行命令 'C:\TEMP\batchfile.bat' 的状态为 1
有没有办法抑制 R 上的控制台输出?
【问题讨论】:
-
system("batchfile.bat", wait = FALSE)成功了 -
它成功地抑制了屏幕上的输出。不幸的是,批处理没有正确执行。它不会将文件写入磁盘。
-
wait = FALSE不能与其他脚本一起使用,@smoff 正确 -
invisible(shell(cmd = "batchfile.bat", intern = TRUE))似乎有效。 -
它也返回一个
Warning message,但你可以用options(warn=-1)抑制它
标签: r system-calls