代码之家  ›  专栏  ›  技术社区  ›  mwjackson

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

  •  0
  • mwjackson  · 技术社区  · 14 年前

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

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

    4 回复  |  直到 14 年前
        1
  •  1
  •   Marcus Adams    14 年前

    Telnet几乎是一个原始的TCP连接。Putty需要的只是服务器的响应。其余部分由shell和SSH/Telnet服务器控制。

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

    在Linux、Unix和MacOSX上,您可以 & 命令执行后,在后台运行它并返回命令提示符。

        2
  •  1
  •   mwjackson    14 年前

    好吧,我还是不太确定问题出在哪里,但是我通过TeamCity论坛找到了一个解决方法。

    基本上,您希望将输出回显到powershell可执行文件中的一些二进制字符串和管道,如下所示:

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

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

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

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

    希望这有帮助

        3
  •  1
  •   OblongZebra    14 年前

    我在另一个项目上也遇到了同样的问题。我使用了>&2(将输出重定向到std err)在最后一个命令之后,这对我来说很好。

        4
  •  0
  •   sra Jon    12 年前

    echo %errorlevel% 查看返回代码XX。