是新行吗?提示?到底是什么?
尝试通过plink运行powershell并执行命令,但plink无法识别已完成并且会话挂起。但最奇怪的是,该命令在通过shell(通过Putty)发送时成功执行。但是,当通过plink发送时,相同的命令会挂起......
有什么想法吗?
答案 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。