Bash 从PuTTY运行的shell脚本返回代码到调用批处理文件?

Bash 从PuTTY运行的shell脚本返回代码到调用批处理文件?,bash,batch-file,putty,exit-code,Bash,Batch File,Putty,Exit Code,我想问一个关于如何应用腻子和控制其返回值的问题。我的设置是这样的 有一个xxxxx.bat文件,其中包含PuTTY调用和ssh连接,如下所示: putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt 文件wintest.txt包含: echo "wintest.txt: Before execute..." /home/tede/n55115/PD/winlinux/RUN.lintest.bsh echo "wintest

我想问一个关于如何应用腻子和控制其返回值的问题。我的设置是这样的

有一个
xxxxx.bat
文件,其中包含PuTTY调用和ssh连接,如下所示:

putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt
文件
wintest.txt
包含:

echo "wintest.txt: Before execute..."

/home/tede/n55115/PD/winlinux/RUN.lintest.bsh

echo "wintest.txt: After execute..."
echo $?
文件
lintest.bsh
包含各种命令,我感兴趣的是能够在.bsh文件中捕获特定命令的返回值,并从bat文件调用该值,将其添加到带有警告的if循环中,即
if$?
(或
%ERRORLEVEL
-我不知道如何工作)
然后
BLABLA


我已经读了很多关于这方面的帖子,但坦率地说,这是我第一次用.bat文件做任何事情,所以这有点让人困惑。

首先,不要使用PuTTY实现自动化,使用(PuTTY命令行连接工具)

但即使是Plink也无法传播远程命令退出代码

您可以让远程脚本在其输出的最后一行打印退出代码(您正在使用
echo$?
执行的操作),并让批处理文件解析退出代码:

@echo关闭
plink.exe putty.ext ssh 10.10.10.10-l xxxx-pw yyyy-t-m wintest.txt>output.txt 2>&1
对于(output.txt)do中的/F“delims=“%%a”(
回声%%a
设置“SHELL\u EXIT\u CODE=%%a”
)
如果%SHELL\u退出\u代码%gtr 0(
回显错误%SHELL\u退出\u代码%
)否则(
呼应成功
)
但当然,您必须修复脚本以返回所需的退出代码(当前代码返回上一个
echo
命令的退出代码):


谢谢,这很有帮助
echo "wintest.txt: Before execute..."

/home/tede/n55115/PD/winlinux/RUN.lintest.bsh
EXIT_CODE=$?

echo "wintest.txt: After execute..."
echo $EXIT_CODE