2014-08-29 68 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