使用批处理文件和PuTTY

时间:2016-07-29 13:42:57

标签: batch-file sftp putty

我必须将文件从一台服务器传输到另一台服务器。我用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

它连接到服务器号码2但随后停止。前缀sftp>未出现,并且未读取以下行。你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

远程shell接受命令并逐个执行。所以它执行sftp,等待它退出(它从未做过),然后它才会执行cd命令(但是在shell中,而不是sftp), put(因为不是shell命令而失败)等等。

如果您的目的是模拟在终端上输入命令,请使用Plink并输入重定向。

Plink (PuTTY command-line connection tool)是来自PuTTY软件包的工具,其工作方式与PuTTY类似,但它是一个控制台,而不是GUI应用程序。因此,它可以使用输入/输出重定向。无论如何,Plink是自动执行任务的工具,而不是PuTTY。

plink.exe -ssh host1 -l username1 -pw password1 < script.txt

有关详情,请参阅超级用户How to type commands in PuTTY by creating batch file?