Differences
This shows you the differences between the selected revisions of the page.
2017-09-02 | 2017-09-02 | ||
removed (2.146.8.129) (hidden) (untrusted) | Restored revision 1486920728. Undoing revisions 1504324790, 1504324811, 1504324830, 1504324845, 1504324862. (martin) (hidden) | ||
Line 1: | Line 1: | ||
+ | ====== put ====== | ||
+ | [[task_upload|Uploads]] one or more files from local directory to remote directory. | ||
+ | |||
+ | ===== Syntax ===== | ||
+ | |||
+ | put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ] | ||
+ | |||
+ | ===== [[remarks]] Remarks ===== | ||
+ | |||
+ | If only one parameter is specified, uploads the file to remote working directory. If more parameters are specified, all except the last one specify set of files to upload. Filename can be replaced with Windows wildcard ((The Windows wildcard supports ''*'' and ''?'' only. If you want to use a full syntax of [[file_mask|file masks]], use a ''[[#filemask|-filemask]]'' switch.)) to select multiple files. To upload all files in a directory, use mask ''*''. | ||
+ | |||
+ | The last parameter specifies target remote directory and optionally [[operation_mask|operation mask]] to store file(s) under different name. Destination directory must end with slash. To upload more files to current working directory use ''./'' as the last parameter. | ||
+ | |||
+ | When specific file name is used, command fails when the file does not exist. When wildcard is used, command succeeds, without doing anything, if the wildcard does not match any file, by default (you can change this using ''[[scriptcommand_option#failonnomatch|option failonnomatch on]]'' command). | ||
+ | |||
+ | You can have WinSCP [[ui_generateurl|generate a code template]] for ''put'' for you. | ||
+ | |||
+ | See also ''[[scriptcommand_synchronize|synchronize]]'', if you need to transfer modified files only. | ||
+ | |||
+ | Switches: | ||
+ | ^ Switch ^ Description ^ | ||
+ | | ''-==delete=='' | Delete source local file(s) after transfer. | | ||
+ | | ''-==latest=='' | Uploads the latest file from the files selected by the ''file'', ''file2'' ... parameters (typically [[file_mask|file masks]]) only. | | ||
+ | | ''-==resume=='' | Automatically resume transfer if possible ((Applies for individual files transfers only. It does not skip transfer of fully transferred files. For that, combine the switch with ''[[#neweronly|-neweronly]]''.)) ([[SFTP]] and [[FTP]] protocols only). Cannot be combined with ''[[#append|-append]]''. | | ||
+ | | ''-==append=='' | Append source file to the end of target file ([[sftp|SFTP protocol]] only). Cannot be combined with ''[[#resume|-resume]]''. | | ||
+ | | ''-==preservetime=='' | Preserve timestamp | | ||
+ | | ''-==nopreservetime=='' | Do not preserve timestamp | | ||
+ | | ''-==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|Transfer mode]]: binary, ascii (text), automatic (by extension). | | ||
+ | | ''-==filemask===<mask>'' | ''%%<mask>[;<mask2>...]%%'' \\ Sets [[file_mask|file mask]]. | | ||
+ | | ''-==resumesupport=== <state>'' | ''%%on|off|<threshold>%%'' \\ Configures [[resume#automatic|automatic resume/transfer to temporary filename]]. | | ||
+ | | ''-==neweronly=='' | Transfer new and updated files only. See also ''[[scriptcommand_synchronize|synchronize]]'' command. | | ||
+ | |||
+ | Aliases: ''send'', ''mput'' | ||
+ | |||
+ | Effective [[scriptcommand_option|options]]: ''[[scriptcommand_option#confirm|confirm]]'', ''[[scriptcommand_option#reconnecttime|reconnecttime]]'', ''[[scriptcommand_option#failonnomatch|failonnomatch]]'' | ||
+ | |||
+ | XML log elements: ''[[logging_xml#upload|upload]]'', ''[[logging_xml#mkdir|mkdir]]'', ''[[logging_xml#chmod|chmod]]'' (with ''[[#permissions|-permissions]]''), ''[[logging_xml#touch|touch]]'' (with ''[[#preservetime|-preservetime]]'') | ||
+ | |||
+ | ===== Examples ===== | ||
+ | <code winscp> | ||
+ | put index.html | ||
+ | </code> | ||
+ | <code winscp> | ||
+ | put -delete index.html about.html ./ | ||
+ | </code> | ||
+ | <code winscp> | ||
+ | put -permissions=644 index.html about.html /home/martin/public_html/ | ||
+ | </code> | ||
+ | <code winscp> | ||
+ | put d:\www\index.html about.* | ||
+ | </code> | ||
+ | <code winscp> | ||
+ | put *.html *.png /home/martin/backup/*.bak | ||
+ | </code> | ||
+ | <code winscp> | ||
+ | put -filemask=*.html -resumesupport=on * | ||
+ | </code> | ||
+ | |||
+ | ===== [[net]] Converting to .NET Assembly ===== | ||
+ | When [[library_from_script|converting script to .NET Assembly]], map ''put'' command to ''[[library_session_putfiles|Session.PutFiles]]'' method. | ||
+ | |||
+ | Parameters mapping: Command parameter ''file'' maps to method parameter ''localPath''. When multiple source file parameters are used, you need to call ''Session.PutFiles'' multiple times. Command parameter ''directory/newname'' maps to method parameter ''remotePath''. You have to [[library_from_script#paths|convert relative paths to absolute paths]]. | ||
+ | |||
+ | Switches mapping: | ||
+ | ^ Switch ^ Mapping ^ | ||
+ | | ''-delete'' | Value ''true'' (''$True'' in PowerShell) for method parameter ''remove''. | | ||
+ | | ''-latest'' | See [[script_upload_most_recent_file|Uploading the most recent file]]. | | ||
+ | | ''-resume'' \\ ''-append'' \\ ''-preservetime'' \\ ''-nopreservetime'' \\ ''-permissions'' \\ ''-nopermissions'' \\ ''-transfer'' \\ ''-filemask'' \\ ''-resumesupport'' \\ ''-speed=<kbps>'' | [[library_from_script_transfer_settings|Converting transfer settings scripting switches]] to .NET assembly class ''TransferSettings''. | | ||
+ | | ''-neweronly'' | Not supported. Use ''[[library_session_synchronizedirectories|Session.SynchronizeDirectories]]'' instead. | | ||
+ | |||
+ | To emulate the ([[scripting#using_scripting|default]]) ''[[scriptcommand_option#batch|option batch abort]]'' mode, call ''[[library_operationresultbase|TransferOperationResult.Check]]'' on method's result. See also [[library_session#results|Capturing results of operations]]. | ||
+ | |||
+ | For example, following script snippet: | ||
+ | |||
+ | <code winscp> | ||
+ | cd /home/martinp | ||
+ | lcd d:\ | ||
+ | ... | ||
+ | put -delete -filemask=*>1M -resumesupport=off *.txt *.xml web/ | ||
+ | </code> | ||
+ | |||
+ | maps to following [[library_powershell|PowerShell]] code: | ||
+ | |||
+ | <code powershell> | ||
+ | $transferOptions = New-Object WinSCP.TransferOptions | ||
+ | # -filemask=*>1M | ||
+ | $transferOptions.FileMask = "*>1M" | ||
+ | # -resumesupport=off | ||
+ | $transferOptions.ResumeSupport.State = [WinSCP.TransferResumeSupportState]::Off | ||
+ | # Absolute paths + $True for -delete + Two calls for two source parameters | ||
+ | # + calling Check on result to emulate the (default) "option batch abort" mode | ||
+ | $session.PutFiles("d:\*.txt", "/home/martinp/web/", $True, $transferOptions).Check() | ||
+ | $session.PutFiles("d:\*.xml", "/home/martinp/web/", $True, $transferOptions).Check() | ||
+ | </code> | ||