如果 Groovy 脚本直接从命令行运行(PATHEXT 中的 .groovy),则 STDOUT 重定向到文件不起作用

如果 Groovy 脚本直接从命令行运行(PATHEXT 中的 .groovy),则 STDOUT 重定向到文件不起作用

我已更新标题,请查看更新原因如下。

我曾在 Stackoverflow 上问过这个问题,但仍然没有收到答复。

Groovy:将标准输出重定向到文件不起作用

我决定在这里询问,因为我认为这可能不是编程问题,而是 Groovy 安装、版本冲突等问题。

以下是一些细节。

我编写了一个非常简单的脚本,使用 System.out.println 将字符串输出到 stdout。除非我想将输出重定向到文件,否则它可以正常工作。有趣的是,文件已创建但为空。

我还尝试使用 Java(相同的 JDK)编写了一个简单的“Hello, World”脚本,并且运行良好。

有人在评论中证实我的 Groovy 脚本在 Windows 和 OS X 上确实可以正确重定向。

Groovy 安装是最新版本。我遵循了所有安装说明。我尝试运行一些现有脚本,除了这个重定向之外,一切正常。

我现在不知道该去哪里找。请帮忙。

Groovy Version: 1.8.4 JVM: 1.7.0_02`
OS: Windows 7 64-bit Pro
GROOVY_HOME: C:\Program Files (x86)\Groovy\Groovy-1.8.4\
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.7.0_02

更新

好的,我刚刚又试了一次我想到的办法。我有.groovy与 groovy 可执行文件关联的扩展,因此我无需键入 即可运行脚本groovy。所以我照做了test.groovy > test.txt,但没有成功。

现在我已尝试过groovy test.groovy > test.txt并且有效!

groovy所以问题现在简单多了。如果我不在命令行中使用,为什么重定向不起作用?

请推荐我应该如何处理这个问题?删除 SO 版本?

更新2: 以下是相关的注册表记录(HKCR\Groovy\shell\open\command):

"C:\Program Files (x86)\Groovy\Groovy-1.8.4\bin\groovy.exe" "%1" %*

相关内容