Differences

This shows you the differences between the selected revisions of the page.

script_commands 2008-11-21 script_commands (current)
Line 1: Line 1:
-====== Script Commands ====== 
-In its [[scripting|scripting]] functionality, WinSCP supports following commmands. 
- 
-You can see the very same help for the commands as shown here, if you type command ''[[script_commands#help|help <command>]]'' directly in console. 
- 
-You can use environment variables in the commands, with syntax %NAME%. 
- 
-Note that WinSCP treats filenames in case sensitive manner. So even if your server treats filenames in case insensitive manner, make sure you specify case properly((This is important particularly for FTP sessions.)). 
- 
-===== call ===== 
-With [[protocols|SFTP and SCP protocols]], executes arbitrary [[remote_command|remote shell command]]. 
-With FTP protocol, executes a protocol command. 
- 
-  call <command> 
- 
-If current session does not allow execution of arbitrary remote command separate [[shell session]] will be automatically opened. 
- 
-The command must not require user input. 
- 
-Alias: ''!'' 
- 
-Examples: 
-<code winscp> 
-call mysqldump --opt -u USERNAME --password=PASSWORD --all-databases > all_databases.sql 
-call gzip -c all_databases.sql > all_databases.gz 
-</code> 
- 
-===== cd ===== 
-Changes remote working directory for active session. 
- 
-  cd [ <directory> ] 
- 
-If ''directory'' is not specified, changes to home directory. 
- 
-Examples: 
-<code winscp> 
-cd /home/martin 
-cd 
-</code> 
- 
-===== chmod ===== 
-[[task_properties|Changes permissions]] of one or more remote files.  
- 
-  chmod <mode> <file> [ <file2> ... ] 
- 
-''mode'' can be specified as three or four-digit octal number. 
- 
-Filename can be replaced with [[file_mask|wildcard]] to select multiple files. 
- 
-Examples: 
-<code winscp> 
-chmod 644 index.html about.html 
-chmod 1700 /home/martin/public_html 
-chmod 644 *.html 
-</code> 
- 
-===== close ===== 
-Closes session. 
- 
-  close [ <session> ] 
- 
-Closes session specified by its number. When ''session'' is not specified, closes currently selected session. 
- 
-Examples: 
-<code winscp> 
-close 1 
-close 
-</code> 
- 
-===== exit ===== 
-Closes all sessions and terminates the program. 
-   
-  exit 
- 
-Alias: ''bye'' 
- 
-===== get ===== 
-[[task_download|Downloads]] one or more files from remote directory to local directory. 
- 
-  get <file> [ [ <file2> ... ] <directory>\[ <newname> ] ] 
- 
-Downloads one or more files from remote directory to local directory. If only one parameter is specified downloads the file to local working directory. If more parameters are specified, all except the last one specify set of files to download. The last parameter specifies target local directory and optionally [[operation_mask|operation mask]] to store file(s) under different name. Destination directory must end with backslash. Filename can be replaced with [[file_mask|wildcard]] to select multiple files. To download more files to current working directory use ''.\'' as the last parameter. 
- 
-Use [[script_commands#option|option]] command to set [[transfer_settings|transfer options]]. 
- 
-Alias: ''recv'' 
- 
-Switches: 
-^ Switch                  ^ Description ^ 
-| ''-delete''              | Delete source remote file(s) after transfer. Options ''exclude'' and ''include'' are ignored. | 
-| ''-preservetime''        | Preserve timestamp | 
-| ''-nopreservetime''      | Do not preserve timestamp | 
-| ''-speed=<kibps>''      | Limit transfer speed | 
- 
-Effective [[script_commands#option|options]]: ''transfer'', ''confirm'', ''exclude'', ''include'' 
- 
-Examples: 
-<code winscp> 
-get index.html 
-get -delete index.html about.html .\ 
-get index.html about.html d:\www\ 
-get public_html/index.html d:\www\about.* 
-get *.html *.png d:\www\*.bak 
-</code> 
- 
-===== help ===== 
-Displays help for script commands. 
- 
-  help [ <command> [ <command2> ... ] ] 
- 
-Displays list of commands when no parameters are specified. Displays help for each command when some are specified. 
- 
-Alias: ''man'' 
- 
-Examples: 
-<code winscp> 
-help ls 
-help 
-</code> 
- 
-===== keepuptodate ===== 
-[[task_keep_up_to_date|Watches for changes]] in local directory and reflects them on remote one. 
- 
-  keepuptodate [ <local directory> [ <remote directory> ] ] 
- 
-When directories are not specified, current working directories are synchronized. To stop watching for changes press ''Ctrl-C''. 
- 
-Note: Overwrite confirmations are always off for the command. 
- 
-Switches: 
-^ Switch                  ^ Description ^ 
-| ''-delete''              | Delete obsolete files  | 
-| ''-permissions=<mode>''  | Set permissions | 
-| ''-nopermissions''      | Keep default permissions | 
-| ''-speed=<kibps>''      | Limit transfer speed | 
- 
-Effective [[script_commands#option|options]]: ''transfer'', ''exclude'', ''include'' 
- 
-Examples: 
-<code winscp> 
-keepuptodate -delete 
-keepuptodate d:\www /home/martin/public_html 
-</code> 
- 
- 
-===== lcd ===== 
-Changes local working directory for all sessions. 
- 
-  lcd <directory> 
- 
-Example: 
-<code winscp> 
-lcd d:\ 
-</code> 
- 
-===== lls ===== 
-Lists the contents of local directory.  
- 
-  lls [ <directory> ]\[ <wildcard> ] 
- 
-If ''directory'' is not specified, lists working directory. When ''[[file_mask|wildcard]]'' is specified, it is treated as set of files to list. Otherwise, all files are listed. 
- 
-Examples: 
-<code winscp> 
-lls *.html 
-lls d:\ 
-lls 
-</code> 
- 
-===== ln ===== 
-[[task_link|Creates remote symlink]]. 
- 
-  ln <target> <symlink> 
- 
-Alias: ''symlink'' 
- 
-Example: 
-<code winscp> 
-ln /home/martin/public_html www 
-</code> 
- 
-===== lpwd ===== 
-Prints current local working directory (valid for all sessions). 
- 
-  lpwd 
- 
-===== ls ===== 
-Lists the contents of specified directory. 
-  ls [ <directory> ]/[ <wildcard> ] 
- 
-Lists the contents of specified remote directory. If ''directory'' is not specified, lists working directory. When ''[[file_mask|wildcard]]'' is specified, it is treated as set of files to list. Otherwise, all files are listed. 
- 
-Alias: ''dir'' 
- 
-Examples: 
-<code winscp> 
-ls *.html 
-ls /home/martin 
-ls 
-</code> 
- 
-===== mkdir ===== 
-[[task_create_directory|Creates remote directory]]. 
- 
-  mkdir <directory> 
- 
-Example: 
-<code winscp> 
-mkdir public_html 
-</code> 
- 
-===== mv ===== 
-[[task_move_duplicate|Moves]] or renames one or more remote files.  
- 
-  mv <file> [ <file2> ... ] [ <directory>/ ][ <newname> ] 
- 
-Destination ''directory'' or ''newname'' or both must be specified. Destination directory must end with slash. [[operation_mask|Operation mask]] can be used instead of new name. Filename can be replaced with [[file_mask|wildcard]] to select multiple files. 
- 
-Alias: ''rename'' 
- 
-Examples: 
-<code winscp> 
-mv index.html public_html/ 
-mv index.html about.* 
-mv index.html public_html/about.* 
-mv public_html/index.html public_html/about.html /home/martin/*.bak 
-mv *.html /home/backup/*.bak 
-</code> 
- 
-===== open ===== 
-Establishes new connection. 
- 
-  open <stored session> 
-  open [ sftp|ftp|scp:// ][ <user> [ :password ] @ ] <host> [ :<port> ] 
- 
-Establishes connection to given host. Use name of the [[ui_login_stored_sessions|stored session]] (to open session, stored in folder, use path syntax “folder/session”). You can also specify ''host'', ''username'', ''port'' and protocol directly. 
- 
-Switches: 
-^ Switch          ^ Description ^ 
-| ''-privatekey=<key>''        | [[public_key#private|Private key]] path | 
-| ''-timeout=<sec>''          | Server response timeout | 
-| ''-hostkey=<fingerprint>''  | Specifies fingerprint of expected host key. It makes WinSCP automatically [[scripting#hostkey|accept hostkey]] with the fingerprint.  | 
-| ''-passive''                | Passive mode ([[protocols#ftp|FTP protocol]] only) | 
- 
-Examples: 
-<code winscp> 
-open sftp://martin@example.com:2222 -privatekey=mykey.ppk 
-open martin@example.com 
-open example.com 
-open 
-</code> 
- 
-===== option ===== 
-Shows or sets value of script options. 
- 
-  option [ <option> [ <value> ] ] 
- 
-If no parameters are specified, lists all script options and their values. When one parameter is specified only, shows value of the option. When two parameters are specified sets value of the option. Initial values of some options are taken from application configuration, however modifing the options does not change the application configuration. 
- 
-Options are: 
-^ Option          ^ Values and description ^ 
-| ''echo''        | ''%%on|off%%'' \\ Toggles echoing of command being executed. \\ Commands affected: all | 
-| ''batch''      | ''%%on|off|abort|continue%%'' \\ Toggles batch mode (all prompts are automatically replied negatively). When ''on'', it is recommended to set ''confirm'' to ''off'' to allow overwrites. With ''abort'' script is aborted when any error occurs. With ''continue'' all errors are ignored. \\ Commands affected: nearly all | 
-| ''confirm''    | ''%%on|off%%'' \\ Toggles confirmations (overwrite, etc.). \\ Commands affected: ''[[script_commands#get|get]]'', ''[[script_commands#put|put]]'' | 
-| ''transfer''    | ''%%binary|ascii|automatic%%'' \\ [[transfer_mode|Transfer mode]]: binary, ascii (text), automatic (by extension). \\ Commands affected: ''[[script_commands#get|get]]'', ''[[script_commands#put|put]]'', ''[[script_commands#synchronize|synchronize]]'', ''[[script_commands#keepuptodate|keepuptodate]]'' | 
-| ''exclude'' \\ ''include''    | ''%%clear | <mask>[;<mask2>...]%%'' \\ Sets [[ui_transfer#other_options|exclusion or inclusion]] [[file_mask|masks]] (only one can be set at time). \\ Commands affected: ''[[script_commands#get|get]]'', ''[[script_commands#put|put]]'', ''[[script_commands#synchronize|synchronize]]'', ''[[script_commands#keepuptodate|keepuptodate]]'' | 
- 
-Aliases: ''ascii'' (for ''option transfer ascii''), ''binary'' (for ''option transfer binary'') 
- 
-Examples: 
-<code winscp> 
-option transfer 
-option confirm off 
-option include "*.html; */" 
-option exclude "*.tpl.php" 
-option exclude "*.mp3; *.mp4; *.lnk; *.exe; *.msi; My Pictures; My Music; My Videos;" 
-option 
-</code> 
- 
-===== put ===== 
-[[task_upload|Uploads]] one or more files from local directory to remote directory. 
- 
-  put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ] 
- 
-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. 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. Filename can be replaced with [[file_mask|wildcard]] to select multiple files. To upload more files to current working directory use ''./'' as the last parameter. 
- 
-Use [[script_commands#option|option]] command to set [[transfer_settings|transfer options]]. 
- 
-Switches: 
-^ Switch                  ^ Description ^ 
-| ''-delete''              | Delete source local file(s) after transfer. Options ''exclude'' and ''include'' are ignored. | 
-| ''-preservetime''        | Preserve timestamp | 
-| ''-nopreservetime''      | Do not preserve timestamp | 
-| ''-permissions=<mode>''  | Set permissions | 
-| ''-nopermissions''      | Keep default permissions | 
-| ''-speed=<kibps>''      | Limit transfer speed | 
- 
-Alias: ''send'' 
- 
-Effective [[script_commands#option|options]]: ''transfer'', ''confirm'', ''exclude'', ''include'' 
- 
-Examples: 
-<code winscp> 
-put index.html 
-put -delete index.html about.html ./ 
-put -permissions=644 index.html about.html /home/martin/public_html/ 
-put d:\www\index.html about.* 
-put *.html *.png /home/martin/backup/*.bak 
-</code> 
- 
-===== pwd ===== 
-Prints current remote working directory for active session. 
- 
-  pwd 
- 
-===== rm ===== 
-Removes one or more remote files.  
- 
-  rm <file> [ <file2> ... ] 
- 
-If [[ui_login_environment#recycle_bin|remote recycle bin]] is configured, moves file to the bin instead of deleting it. Filename can be replaced with [[file_mask|wildcard]] to select multiple files. 
- 
-Examples: 
-<code winscp> 
-rm index.html 
-rm index.html about.html 
-rm *.html 
-</code> 
- 
-===== rmdir ===== 
-Removes one or more remote directories. 
- 
-  rmdir <directory> [ <directory2> ... ] 
- 
-If [[ui_login_environment#recycle_bin|remote recycle bin]] is configured, moves directory to the bin instead of deleting it. 
- 
-Example: 
-<code winscp> 
-rmdir public_html 
-</code> 
- 
-===== session ===== 
-Manages opened sessions. 
- 
-  session [ <session> ] 
- 
-Makes session specified by its number active. When session number is not specified, lists connected sessions. 
- 
-Examples: 
-<code winscp> 
-session 1 
-session 
-</code> 
- 
-===== synchronize ===== 
-[[task_synchronize_full|Synchronizes directories]]. 
- 
-  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. 
- 
-Switches: 
-^ Switch                  ^ Description ^ 
-| ''-delete''              | Delete obsolete files  | 
-| ''-mirror''              | [[task_synchronize_full#synchronization_mode|Mirror mode]] (synchronize also older files). Ignored for ''both''.  | 
-| ''-criteria=<criteria>'' | [[ui_synchronize#comparison_criteria|Comparison criteria]]. Possible values are ''time'', ''size'' and ''both''. Ignored for ''both'' mode. | 
-| ''-permissions=<mode>''  | Set permissions | 
-| ''-nopermissions''      | Keep default permissions | 
-| ''-speed=<kibps>''      | Limit transfer speed | 
- 
-Effective [[script_commands#option|options]]: ''transfer'', ''exclude'', ''include'' 
- 
-Examples: 
-<code winscp> 
-synchronize remote -delete 
-synchronize both d:\www /home/martin/public_html 
-</code>