我有一个 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
首先,让我们诊断一下为什么它不起作用。
- 批处理文件启动。可能位于 C:\users\vincent\
- 工作目录由第一个命令改变。该命令完成后,处理转到下一个命令。
psftp [email protected] -pw password -P port
开始。它正在运行并等待用户输入。- 下一个命令直到前一个结束才会到达。如果您阅读速度很快,那么您可以在窗口关闭之前键入
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