[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] ehco y|command 管道问题求解

本帖最后由 eddy 于 2015-4-29 11:24 编辑

使用如下批处理代码:
echo y| command   其中command泛指一个批处理语句,ehco y通过管道将y传给command作为commnd的输入使用
在实际的执行过程中,发现command有时候能够收到y,正确执行,有时候不能收到y,一只等待y输过来
由于command本身需要执行一段时间后,才用到y,个人怀疑是不是y只在管道中呆一段时间t,如果command在时间t之前用到y,则y可正确输给command,如果command在时间t之后才用到y,但是此时y已经不再管道中了,则command只能一致等待y输过来
请问各位大神:以上问题原因是什么?有何解决措施?谢谢

补充:
具体的例子是
echo y|plink.exe -pw root [email]root@192.168.51.11[/email]
其中,"plink.exe -pw root [email]root@192.168.51.11[/email]"是登入一台linux服务器,登入后系统会提示:"Are you sure to login the server?[Y/N]:",这里需要输入y,实际的操作过程中,有时候能够正确输入,有时不能

回复 4# gawk

恩,谢谢
1、一般的linux是可以直接执行命令
2、我们这个linux经过裁剪且加入了一些安全设置,导致plink无法直接执行命令,我的关注点不在这里。
3、我关注的是,如问题所述,为何echo y|command这个管道有时可以有时不可以,管道前的输出到管道后的输入的机制是怎样的。

TOP

回复 3# eddy
  1. plink -ssh -v -pw Pass4Root root@192.168.222.11 "/var/tmp/test.sh" > remote.log
复制代码
  1. plink -ssh -v -pw Pass4Root root@192.168.222.11 -m local.sh > local.log
复制代码
我这里的服务器上都是直接执行远程脚本或者本地脚本
不知道你那里做了什么设置导致 refused to start a shell/command
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 2# gawk


有的服务器正常,有的服务器不正常?
还是同一台服务器有时正常有时不正常?
----同一台服务器

不使用 echo y,直接给plink加个 -batch 参数可以吗?
-----不行。batch是禁用交互,我这里还想通过管道的方式给plink传送除了y意外的命令,给服务器执行。(我这边的服务器由于系统配置问题,plink直接执行命令会报server refused to start a shell/command的错误,所以我想用管道的方式)

TOP

有的服务器正常,有的服务器不正常?
还是同一台服务器有时正常有时不正常?
不使用 echo y,直接给plink加个 -batch 参数可以吗?
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

返回列表