使用 PSFTP 发送文件到远程服务器

使用 PSFTP 发送文件到远程服务器

我有一个 bat 文件,我每晚都会调用它来传输一些文件。

我想将文件从我的计算机放到远程服务器。我已经安装了 PSFTP,但我不知道如何以批处理方式使用它。

我把这个放进去:

CD /D C:\Users\Vincent\Desktop
psftp [email protected] -pw password -P port
put file.csv /remote/folder/file.csv

但是当我调用我的 BAT 文件时,它卡在:

psftp > _

我如何将其用作自动模式?

答案1

首先,让我们诊断一下为什么它不起作用。

  1. 批处理文件启动。可能位于 C:\users\vincent\
  2. 工作目录由第一个命令改变。该命令完成后,处理转到下一个命令。
  3. psftp [email protected] -pw password -P port开始。它正在运行并等待用户输入。
  4. 下一个命令直到前一个结束才会到达。如果您阅读速度很快,那么您可以在窗口关闭之前键入quit并查看错误消息。put is not a recognised internal or external command

好的,我们现在发现我们发出的是第三个命令,而不是 psftp 的输入。现在的问题是如何向正在运行的 psftp 程序发出命令。

第六章,psftp 的第 6.1.5 节提到了该-b选项。引用:

在正常运行中,PSFTP 是一个交互式程序,它显示命令行并接受来自键盘的命令。如果您需要使用 PSFTP 执行自动任务,您可能希望提前指定一组命令并让它们自动执行。-b 选项允许您执行此操作。您可以将它与包含批处理命令的文件名一起使用。例如,您可以创建一个名为 myscript.scr 的文件,其中包含如下行:

然后它列出了一个例子。在你的情况下,文件可能应该包含以下内容:

put file.csv /remote/folder/file.csv
quit

相关内容