如果文件存在,则使用 psftp 覆盖远程服务器上的文件

如果文件存在,则使用 psftp 覆盖远程服务器上的文件

我是命令行和 PSFTP 命令行上传的新手,我习惯使用 FileZilla,但目前,我正在通过 PSFTP 命令行将一些扩展名为( .js,, ).php的文件上传到我的远程服务器。.txt

我发现 PSFTP 会自动覆盖该文件而无需询问任何内容。

现在我的问题是:就像@OverrideJava 中的命令一样,如果您尝试覆盖的方法不在超类中,编译器就会给您一个错误,PSFTP 中是否也有这个关键字,因为我想覆盖文件,如果它不存在,我想取消上传。

答案1

中没有这样的命令/关键字psftp


但是您可以使用 WinSCP 来实现这一点stat命令.使用以下批处理文件:

@echo off
winscp.com /command ^
    "open sftp://user:[email protected]/" ^
    "stat /home/user/file.txt" ^
    "put c:\file.txt /home/user/file.txt" ^
    "exit"

默认情况下,如果任何命令失败,WinSCP 会中止脚本。该stat命令检索远程文件的属性。如果file.txt不存在,stat则命令失败,并且put永远不会发生。

了解有关使用 WinSCP 编写脚本的更多信息:
https://winscp.net/eng/docs/guide_automation

(我是 WinSCP 的作者)

相关内容