考虑两种情况a)关闭输出重定向和b)Rscript输出重定向到文件out.txt两种情况下在STDOUT中看到的输出都无法仅在方案b中被重定向到文件out.txt。我在这里遗漏了什么或者这是Rscript.exe特有的吗?
C:\>C:\\WINDOWS\\system32\\shutdown.exe -t:30 > out.txt
C:\>dir out.txt
Volume in drive C has no label.
Volume Serial Number is 3568-1B07
Directory of C:\
07/18/2012 07:43 PM 841 out.txt
1 File(s) 841 bytes
0 Dir(s) 17,618,206,720 bytes free
C:\>G:\\Progra~1\\R\\R-2.14.0\\bin\\Rscript.exe --version > out.txt
R scripting front-end version 2.14.0 (2011-10-31)
C:\>dir out.txt
Volume in drive C has no label.
Volume Serial Number is 3568-1B07
Directory of C:\
07/18/2012 07:44 PM 0 out.txt
1 File(s) 0 bytes
0 Dir(s) 17,618,239,488 bytes free
关于为什么Rscript.exe输出没有被重定向到文件out.txt的任何想法或解释?也许是一个非常简单的解释等待。
感谢你,
答案 0 :(得分:1)
您无法使用重定向来获取版本信息,但您可以将重定向用于实际的R命令。例如,如果您的文件a.r
只包含一个命令,例如1+1
,那么:
Rscript a.r > out.txt
将显示结果。我认为它与R
发送版本信息的“输出”有关。我认为它输出到STDERR而不是STDOUT(或DOS中的等效概念),因此重定向不起作用。
答案 1 :(得分:1)
答案很简单。版本信息写入STDERR(标准错误流),但您只是重定向STDOUT(标准输出)。如果你想要两个都去文件,那么使用
G:\\Progra~1\\R\\R-2.14.0\\bin\\Rscript.exe --version >out.txt 2>&1