我尝试执行:
cmd /c java -version > someFile.txt cmd /c echo java -version > someFile.txt
但是没有任何信息被写入我正在redirect到的文件中。
batch file提取并将文本传入variables?
运行在Windows启动CMD的参数
在批处理中杀死一个进程并报告成功
捕获stderr而不是stdout:
java -version 2> someFile.txt java -fullversion 2> someFile.txt cmd /c java -version 2> someFile.txt
这解释了为什么Java将帮助写入stderr:
在修复这个bug之前,我们应该非常仔细地思考。 将版本信息打印到stderr显然是错误的,但是自从我们从一开始就一直这样做的话,如果我们现在改变它,我们可能会打破在Java之上构建的现有系统。 如果我们决定改变这一点,那么它必须等到Tiger发布,以便能够进行足够的测试。
Java将此信息写入标准错误而不是标准输出,因此您需要重定向正确的通道
cmd /c java -version 2> someFile.txt
这工作。