PUTTY / PLINK如何确定命令已返回?

时间:2010-06-04 16:27:40

标签: powershell putty plink

是新行吗?提示?到底是什么?

尝试通过plink运行powershell并执行命令,但plink无法识别已完成并且会话挂起。但最奇怪的是,该命令在通过shell(通过Putty)发送时成功执行。但是,当通过plink发送时,相同的命令会挂起......

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

Telnet几乎是一个原始的TCP连接。所有Putty需求都是来自服务器的响应。其余部分由shell和SSH / Telnet服务器控制。

当您的任务正在运行时,它不会返回命令提示符。

在Linux,Unix和Mac OS X上,您可以在命令之后放置&以在后台运行它并返回到命令提示符。

尝试在本地终端/命令shell中运行它。你基本上应该看到同样的事情。

答案 1 :(得分:1)

好的,我还不太清楚问题是什么,但我通过TeamCity论坛找到了解决方法。

基本上你想要回输一些输出到powershell可执行文件的abitrary字符串和管道,如下所示:

echo 'executing powershell...' | C:\windows\system32\windowspowershell \v1.0\powershell.exe  exit 1

那么你的完整plink命令就变成了:

plink.exe user@someIp -i key.ppk -P 22 -batch -v "echo 'executing powershell...' | C:\windows\system32\windowspowershell\v1.0\powershell.exe exit 1"

的Nb。 Plink仍将使用此方法传递返回码和控制台输出。

指向TeamCity论坛的链接:

http://youtrack.jetbrains.net/issue/TW-6021

希望这有帮助

答案 2 :(得分:0)

我和其他程序有同样的问题。我在最后一个命令之后使用了>& 2(重定向输出到std err),这对我来说很好。

答案 3 :(得分:0)

只需将“return XX”添加到远程shell脚本中,它将返回值到本地控制台。完成plink后,键入echo %errorlevel%以查看返回代码XX。