2014-08-29 73 views
1

文件我有一个从Java运行PSEXEC问题,以下是我的测试脚本:执行PSEXEC并输出到本地主机上

def cmd = 'psexec.exe \\\\IP_ADRESS -accepteula -u "user_name" -p "passwd" net start MyService > C:/output.txt 2>&1' 
def proc = cmd.execute() 
proc.waitFor(); 

如你所知,我要开始从远程计算机的MyService,并输出标准输出到本机在C:/output 我后运行该脚本,没有文件输出,没有显示在控制台脚本

我想谷歌搜索,但没有运气:(

当然,我可以在上面的命令从命令行运行

psexec.exe \\IP_ADRESS -accepteula -u "user_name" -p "passwd" net start MyService > C:/output.txt 2>&1 

那么,我的脚本有什么问题?

而且我还有一个问题

当我从命令行运行此命令

psexec.exe \\IP_ADRESS -accepteula -u "user_name" -p "passwd" net start MyService > C:/output.txt 2>&1` 

我得到的输出C:/output.txt

PsExec v1.98 - Execute processes remotely 
Copyright (C) 2001-2010 Mark Russinovich 
Sysinternals - www.sysinternals.com 
The MyService started. 
Connecting to 10.0.0.2... 
Starting PsExec service on 10.0.0.2... 
Connecting with PsExec service on 10.0.0.2... 
Starting net on 10.0.0.2... 
net exited on 10.0.0.2 with error code 0. 

我只希望这个字符串The MyService started.输出文件,不像来自PSEXEC的消息

我该怎么做?对版权有任何违法之处?请帮我

非常感谢您的帮助

回答

1

我不知道窗口,但标准输出/ ERR的重定向,像你刨那里,可能是一个壳特征。如果您只对结果输出(而不是文件本身)感兴趣,则可以在您的proc变量上访问标准输出/输出。

http://groovy.codehaus.org/Executing+External+Processes+From+Groovy

def command = """executable arg1 arg2 arg3"""// Create the String 
def proc = command.execute()     // Call *execute* on the string 
proc.waitFor()        // Wait for the command to finish 
println "return code: ${ proc.exitValue()}" 
println "stderr: ${proc.err.text}" 
println "stdout: ${proc.in.text}" // *out* from the external program is *in* for groovy 

也一定要检查错误代码和标准错误的实际错误。如果有疑问,而不是'cmd arg1 arg2'.execute()考虑运行['cmd','arg1','arg2'].execute()如果你的应用程序有挑剔。

+0

谢谢,但我需要输出stdout/err到文件,因为有时我运行脚本或应用程序,进程挂起或退出时没有从该脚本/应用程序返回标准输出 – Ryo 2014-09-03 02:22:09

1

我对java和psexec有同样的问题。我没有从java返回psexec的输出。我发现这个替代方案在gradle论坛上使用paexec

http://forums.gradle.org/gradle/topics/exec_starting_remote_process_with_psexec_does_not_return_on_windows

paexec与psexec非常相似,并具有一些附加功能。看起来另一个附加功能是能够在java中获得输出。

+1

“您请求的页面不存在或是私有的” 。如果可能的话,您应该在答案中包含代码示例。 – aergistal 2015-04-01 14:55:51