web-dev-qa-db-ja.com

リモートサーバー上のファイルが存在する場合は、psftpで上書きします

私はコマンドラインとPSFTPコマンドラインアップロードの初心者です。FileZillaに慣れていますが、現時点では、拡張子(.js.php.txt)のファイルをにアップロードしています。 PSFTPコマンドライン経由のリモートサーバー。

PSFTPは、何も要求せずにファイルを自動的に上書きすることがわかりました。

今私の質問は次のとおりです:Javaの@Overrideコマンドのように、オーバーライドしようとしているメソッドがスーパークラスにない場合、コンパイラはエラーを出します、そこにありますPSFTPでもこれのキーワードです。ファイルをオーバーライドしたかったので、ファイルが存在しない場合はアップロードをキャンセルしたいと思います。

2

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の作者です)

0
Martin Prikryl