从外部插件重定向stdout输出到stderr流时出错

时间:2015-11-05 19:08:04

标签: shell batch-file

我正在从客户端运行插件。该插件执行Windows机器上的脚本。我正在执行一个.bat脚本,该脚本又执行一个执行SQL查询的Java程序。该插件仅捕获stderr流,我希望在stderr流中捕获SQL查询的输出。我使用插件中的以下命令来执行此操作:

C:\Users\dynamntr2\Documents\GenericExecutionPlugin\Test1.bat 1>&2

但我收到以下错误:

execute method: exception was thrown when executing command 
'C:\Users\dynamntr2\Documents\GenericExecutionPlugin\Test1.bat 1>&2'.
Stack trace is 'java.lang.RuntimeException exception occurred. 
Message = 'Unexpected end of file from server'; 
Stacktrace is '''

当我从Windows机器本地运行时,该命令在屏幕上返回SQL查询的输出。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不确定如何启动批处理文件。我想你是从java程序开始的。

如果是这种情况,则命令似乎错误。重定向器运算符和流标识符由cmd实例处理,该实例必须创建请求的流配置,然后启动批处理文件。

这意味着要使用此方法,您不能执行批处理命令,而是执行创建重定向并执行批处理文件的cmd实例。

cmd.exe /c "C:\Users\dynamntr2\Documents\GenericExecutionPlugin\Test1.bat 1>&2"