我必须将文件从一台服务器传输到另一台服务器。我使用PuTTY登录到第一个,然后输入以下内容:
sftp -v -oIdentityFile=path username@host
cd path
put file
一切正常!现在,我正在尝试使用批处理文件。在.bat文件中,我有:
putty.exe -ssh host1 -l username1 -pw password1 -m script.txt
在script.txt
文件中:
sftp -v -oIdentityFile=path username2@host2
cd path
put file
exit
它连接到第二号服务器,但随后停止。该前缀sftp>
不会出现,并且不会读取以下行。你有什么建议吗?
远程外壳程序接收命令并逐个执行它们。因此它执行sftp
,等待它退出(从不执行),然后才执行cd
命令(但在shell中,而不在sftp
),put
(失败,因为它不是shell命令)等。
如果您打算模拟在终端上键入命令,请使用Plink和输入重定向。
所述的Plink(腻子命令行连接工具)是从腻子封装的工具,它的工作原理是腻子,但它是一个控制台,而不是GUI,应用。因此,它可以使用输入/输出重定向。而且无论如何,Plink是自动执行任务的工具,而不是PuTTY。
plink.exe -ssh host1 -l username1 -pw password1 < script.txt
有关更多详细信息,请参见如何通过创建批处理文件在PuTTY中键入命令?在超级用户上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句