web-dev-qa-db-ja.com

WinSCPで最新のファイルのみをアップロードする

私はWinSCPでかなり新しいです。このアプリケーションで、ローカルディレクトリ内の最新の変更されたファイルのみをリモートディレクトリに送信できるかどうかを知りたいのですが。両方のフォルダの内容が常に一致しないことに注意してください。したがって、同期はオプションではありません。

接続を確立し、ファイルをサーバーに「配置」することができました。しかし、自分がやりたいことをどうやって達成できるのかわからない。

これが私のコマンドです...

winscp.exe /console /command "option batch on" "open ftp://user:pass@remoteip:port -explicitssl -passive" "put c:\files\Completed /Test" "exit" /log=c:\winscp_log.txt

どんな助けでも大歓迎です...

2
molecule

WinScpを単独で使用してそれを行うことはできません。スクリプトはそれほど複雑ではありません。最新のファイルを取得するには、別のスクリプト言語を使用する必要があります。

たとえば、次のバッチファイル:

@echo off

for /f "delims=" %%i in ('dir /b /od c:\files\Completed\*') do set LastFile=%%i

winscp.exe /console /command "option batch on" "open ftp://user:pass@remoteip:port  -explicitssl -passive" "put c:\files\Completed\%LastFile% /Test" "exit" /log=c:\winscp_log.txt
3
shf301

WinSCPは、他の答えとは逆に、実際にそれを行うことができます。

putコマンド には -latestスイッチ

put -latest c:\files\Completed\* /Test/

詳細については、WinSCPの記事 最新のファイルのアップロード を参照してください。

3
Martin Prikryl