bash – 从shell脚本返回代码从PuTTY运行到调用批处理文件?
发布时间:2020-12-15 21:01:46 所属栏目:安全 来源:网络整理
导读:我想问一个关于如何应用PuTTY并控制其返回值的问题.我的设置是这样的. 有一个xxxxx.bat文件,其中包含带有ssh连接的PuTTY调用,如下所示: putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt 文件wintest.txt包含: echo "wintest.txt: Before ex
我想问一个关于如何应用PuTTY并控制其返回值的问题.我的设置是这样的.
有一个xxxxx.bat文件,其中包含带有ssh连接的PuTTY调用,如下所示: 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文件调用该值,将其添加到带有a的if循环中.警告,即如果$? (或%ERRORLEVEL – 我不知道会起什么作用)然后是BLABLA 我已经阅读了很多关于此的帖子,但坦率地说,这是我第一次使用.bat文件做任何事情,所以这一切都有些令人困惑. 解决方法
首先,不要使用PuTTY进行自动化,请使用
Plink(PuTTY命令行连接工具).
但即使是Plink也无法传播远程命令退出代码. 您可以让远程脚本在其输出的最后一行打印退出代码(您已经使用echo $做了什么?)并让批处理文件解析退出代码: @echo off plink.exe putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt > output.txt 2>&1 for /F "delims=" %%a in (output.txt) do ( echo %%a set "SHELL_EXIT_CODE=%%a" ) if %SHELL_EXIT_CODE% gtr 0 ( echo Error %SHELL_EXIT_CODE% ) else ( echo Success ) 但是,当然,您必须修复脚本以返回所需的退出代码(当前代码返回上一个echo命令的退出代码): echo "wintest.txt: Before execute..." /home/tede/n55115/PD/winlinux/RUN.lintest.bsh EXIT_CODE=$? echo "wintest.txt: After execute..." echo $EXIT_CODE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |