2017-05-30 24 views
1

バッチファイルを使用してPSFTP経由で第三者サーバーにファイルを転送しています。ファイルの転送中、バッファリングの問題により、ファイルが破損しているか完全に転送されていません。転送後のPSFTPリネームファイルが完成しました

救済策として、第三者は、ファイル転送を開始する前に各ファイルに「.new」という名前を付け、ファイルが完全に/正常に転送されると「.n​​ew」を削除するように要求しました。

上記で実装するバッチスクリプトコマンドを教えてください。追加情報が必要な場合はお知らせください。

put c:\local\path\file /remote/path/file.new 
mv /remote/path/file.new /remote/path/file 

ワイルドカードを使用して複数のファイルを転送している場合、これはあなたを助けにはなりませんけれども:、ファイルの名前を変更mv command(またはそれはrenエイリアスです)を使用するには

+0

'psftp'は、リモートコンピュータ上のファイルの名前を変更するには、' ren'コマンドを持っています。 'psftp'プロンプトで' help'と入力して 'Enter'を押します。 'ren'は、ファイルを転送するために使用されるftpスクリプトに置かれます。 – lit

答えて

0

複数のファイルに対して比較的簡単な解決策は、一時的なアップロードフォルダを使用することです。 、同様の議論について

mput c:\local\path\* /temp/path 
mv /temp/path/* /remote/path 

をもSFTP file lock mechanismを参照してください。アップロードが完了したら、ターゲットフォルダに一度にすべてのファイルを移動することができます。


あなたは拡張子を持つソリューションを使用する必要がある場合、それはあなたが自動的にアップロードのための一時ファイル名を使用することができますよう、あなたは、WinSCPのを使用することができます。 .filepartを使用していますが、.new拡張子は使用していません。

put -resumesupport=on c:\local\path\* /remote/path/ 

詳細については、WinSCPの記事Uploading to temporary file nameを参照してください。

この記事でも(より複雑な)solution using WinSCP .NET assembly that allows you to use even the .new extensionが表示されます。

WinSCPに切り替えると、guide for converting psftp script to WinSCPが表示されます。

(私はWinSCPのの著者です)

関連する問題