WinSCP同步 synchronize



synchronize local|remote|both [ <local directory> [ <remote directory> ] ]


When the first parameter is local, changes from remote directory are applied to local directory. When the first parameter is remote, changes from the local directory are applied to the remote directory. When the first parameter is both, both local and remote directories can be modified.

When directories are not specified, current working directories are synchronized.

Note: Overwrite confirmations are always off for the command.


Switch Description
-preview Preview changes only, do not synchronize. Transfer settings switches -permissions, -nopermissions, -speed, -transfer and -resumesupport have no effect.
-delete Delete obsolete files. Ignored for both.
-mirror Mirror mode (synchronize also older files). Ignored for both.
-criteria=<criteria> Comparison criteria. Possible values are time, size, either and none. Ignored for both mode.
-preservetime Preserve timestamp. Enforced by default unless -criteria is size or none.
-nopreservetime Do not preserve timestamp. Ignored unless -criteria is size or none.
-permissions=<mode> Set permissions (SFTP and SCP protocols only)
-nopermissions Keep default permissions
-speed=<kbps> Limit transfer speed (in KB/s)
-transfer=<mode> binary|ascii|automatic 
Transfer mode: binary, ascii (text), automatic (by extension).
-filemask=<mask> <mask>[;<mask2>...] 
file mask.
-resumesupport= <state> on|off|<threshold> 
automatic resume/transfer to temporary filename.

Effective options: reconnecttime

XML log elements: download (with local or both), upload (with remote or both), mkdir, touch (with remote or both), chmod (with remote or both and -permissions), rm (with remote and -delete)


synchronize both
synchronize remote -delete d:\www /home/martin/public_html
synchronize both -filemask="|*.bak; *.tmp"

Converting to .NET Assembly

When converting script to .NET Assembly, map synchronize command to Session.SynchronizeDirectories method.

Parameters mapping: Command parameter local|remote|both maps to method parameter mode, with values SynchronizationMode.Local,SynchronizationMode.Remote and SynchronizationMode.Both, respectively (Enumeration syntax in PowerShell is like [WinSCP.SynchronizationMode]::Local). Command parameter local directory maps to method parameter localPath. Command parameter remote directory maps to method parameter remotePath. You have to convert relative paths to absolute paths.

Switches mapping:

Switch Mapping
-delete Value true ($True in PowerShell) for method parameter removeFiles.
-mirror Value true ($True) for method parameter mirror.
-criteria Set method parameter criteria. Use SynchronizationCriteria.Time for time, SynchronizationCriteria.Size for size,SynchronizationCriteria.Either for either and SynchronizationCriteria.None for none. 
Enumeration syntax in PowerShell is like [WinSCP.SynchronizationCriteria]::Time.
Converting transfer settings scripting switches to .NET assembly class TransferSettings.

To emulate option batch abort mode, call TransferOperationResult.Check on method’s result. See also Capturing results of operations.

For example, following script snippet:

option batch abort
synchronize both d:\www /home/martin/public_html

maps to following PowerShell code:

$synchronizationResult =
        [WinSCP.SynchronizationMode]::Both, "d:\www", "/home/martin/public_html", $False)
# Throw on any error to emulate "option batch abort"

About 智足者富


电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>