Differences
This shows you the differences between the selected revisions of the page.
guide_ftp_script_to_sftp 2016-07-28 | guide_ftp_script_to_sftp 2022-10-21 (current) | ||
Line 1: | Line 1: | ||
====== Converting Windows FTP script to WinSCP SFTP script ====== | ====== Converting Windows FTP script to WinSCP SFTP script ====== | ||
- | This guide explains how to convert existing FTP file transfer script using [[https://technet.microsoft.com/en-us/library/bb490910.aspx|Windows built-in command-line FTP client]] (''ftp.exe'') to SFTP [[scripting|script using WinSCP]]. | + | This guide explains how to convert existing FTP file transfer script using [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ftp|Windows built-in command-line FTP client]] (''ftp.exe'') to SFTP [[scripting|script using WinSCP]]. |
- | You can also use it to convert FTP script using ''ftp.exe'' to WinSCP, in case you want to use some advanced feature that WinSCP offers, such as [[ftps|FTP over TLS/SSL]], [[scriptcommand_synchronize|synchronization]], passive mode((WinSCP defaults to passive mode.)), [[script_upload_multiple_servers|parametrized script]], [[scripting#timestamp|timestamped file names]], [[script_custom_listing_format_csv|custom directory listing format]], UTF-8 support, preserving file timestamp, recursive downloads and uploads, and others. | + | You can also use it to convert FTP script using ''ftp.exe'' to WinSCP, in case you want to use some advanced feature that WinSCP offers, such as [[ftps|FTP over TLS/SSL]], [[scriptcommand_synchronize|synchronization]], passive mode,((WinSCP defaults to passive mode.)) [[script_upload_multiple_servers|parametrized script]], [[scripting#timestamp|timestamped file names]], [[script_custom_listing_format_csv|custom directory listing format]], UTF-8 support, preserving file timestamp, recursive downloads and uploads, and others. |
===== [[commandline]] Converting Command-Line ===== | ===== [[commandline]] Converting Command-Line ===== | ||
Line 56: | Line 56: | ||
<code winscp> | <code winscp> | ||
open sftp://username:password@sftp.example.com/ | open sftp://username:password@sftp.example.com/ | ||
+ | </code> | ||
+ | |||
+ | Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. | ||
+ | |||
+ | ===== [[errors]] Error Handling ===== | ||
+ | WinSCP by default aborts the script when some of the commands fail. On the contrary ''ftp.exe'' continues processing a script after an error. If your original ''ftp.exe'' script relies on this behavior, you can emulate it in WinSCP by switching the [[scriptcommand_option#batch|batch mode]] to ''on'' at the beginning of your script: | ||
+ | <code winscp> | ||
+ | option batch on | ||
</code> | </code> | ||
===== Converting Commands ===== | ===== Converting Commands ===== | ||
- | ==== append ==== | + | |
+ | ==== [[append]] append ==== | ||
Use ''[[scriptcommand_put|put]] -append <localfile> [remotefile]''. | Use ''[[scriptcommand_put|put]] -append <localfile> [remotefile]''. | ||
The ''-append'' switch is supported with the SFTP protocol only. | The ''-append'' switch is supported with the SFTP protocol only. | ||
- | ==== ascii ==== | + | ==== [[ascii]] ascii ==== |
Use ''-transfer=ascii'' switch for all following file transfer commands (''[[scriptcommand_put|put]]'' or ''[[scriptcommand_get|get]]''). | Use ''-transfer=ascii'' switch for all following file transfer commands (''[[scriptcommand_put|put]]'' or ''[[scriptcommand_get|get]]''). | ||
Line 82: | Line 91: | ||
Note that WinSCP also supports ''ascii'' command, but its use is deprecated. | Note that WinSCP also supports ''ascii'' command, but its use is deprecated. | ||
- | ==== bye ==== | + | ==== [[bye]] bye ==== |
Use ''[[scriptcommand_exit|exit]]''. | Use ''[[scriptcommand_exit|exit]]''. | ||
Note that WinSCP also supports ''bye'' alias. | Note that WinSCP also supports ''bye'' alias. | ||
- | ==== binary ==== | + | ==== [[binary]] binary ==== |
Use ''-transfer=binary'' switch for all following file transfer commands (''[[scriptcommand_put|put]]'' or ''[[scriptcommand_get|get]]''). | Use ''-transfer=binary'' switch for all following file transfer commands (''[[scriptcommand_put|put]]'' or ''[[scriptcommand_get|get]]''). | ||
Line 105: | Line 114: | ||
Note that WinSCP also supports ''binary'' command, but its use is deprecated. | Note that WinSCP also supports ''binary'' command, but its use is deprecated. | ||
- | ==== cd ==== | + | ==== [[cd]] cd ==== |
Use ''[[scriptcommand_cd|cd]]'' command. | Use ''[[scriptcommand_cd|cd]]'' command. | ||
- | ==== close ==== | + | ==== [[close]] close ==== |
Use ''[[scriptcommand_close|close]]'' command. | Use ''[[scriptcommand_close|close]]'' command. | ||
- | ==== delete ==== | + | ==== [[delete]] delete ==== |
Use ''[[scriptcommand_rm|rm]]'' command. | Use ''[[scriptcommand_rm|rm]]'' command. | ||
Note that WinSCP also supports ''delete'' alias. | Note that WinSCP also supports ''delete'' alias. | ||
- | ==== dir ==== | + | ==== [[dir]] dir ==== |
Use ''[[scriptcommand_ls|ls]]'' command. | Use ''[[scriptcommand_ls|ls]]'' command. | ||
Line 123: | Line 132: | ||
Note that WinSCP also supports ''dir'' alias. | Note that WinSCP also supports ''dir'' alias. | ||
- | ==== disconnect ==== | + | ==== [[disconnect]] disconnect ==== |
Alias to ''[[scriptcommand_close|close]]'' command. | Alias to ''[[scriptcommand_close|close]]'' command. | ||
- | ==== get ==== | + | ==== [[get]] get ==== |
Use ''[[scriptcommand_get|get]]'' command. | Use ''[[scriptcommand_get|get]]'' command. | ||
Line 144: | Line 153: | ||
</code> | </code> | ||
- | ==== glob ==== | + | ==== [[glob]] glob ==== |
In WinSCP, to escape special characters in filename, use [[file_mask#basic|set pattern]]. | In WinSCP, to escape special characters in filename, use [[file_mask#basic|set pattern]]. | ||
For example to download file with literal ''*'' character, use ''get filewithstar[*]''. | For example to download file with literal ''*'' character, use ''get filewithstar[*]''. | ||
- | ==== hash ==== | + | ==== [[hash]] hash ==== |
WinSCP always prints percentual progress of file transfer when run in console. It does not output progress when redirected to a file. | WinSCP always prints percentual progress of file transfer when run in console. It does not output progress when redirected to a file. | ||
- | ==== lcd ==== | + | ==== [[lcd]] lcd ==== |
Use ''[[scriptcommand_lcd|lcd]]'' command. | Use ''[[scriptcommand_lcd|lcd]]'' command. | ||
- | ==== literal ==== | + | ==== [[literal]] literal ==== |
There are no textual commands in SFTP protocol. You can execute [[remote_command|remote shell commands]] using ''[[scriptcommand_call|call]]'' command. | There are no textual commands in SFTP protocol. You can execute [[remote_command|remote shell commands]] using ''[[scriptcommand_call|call]]'' command. | ||
With FTP protocol, you can use ''call'' command to execute FTP protocol commands. | With FTP protocol, you can use ''call'' command to execute FTP protocol commands. | ||
- | ==== ls ==== | + | ==== [[ls]] ls ==== |
You can use ''[[scriptcommand_ls|ls]]'' command to list directory contents with full details. | You can use ''[[scriptcommand_ls|ls]]'' command to list directory contents with full details. | ||
- | ==== mdelete ==== | + | ==== [[mdelete]] mdelete ==== |
Use ''[[scriptcommand_rm|rm]]'' command. | Use ''[[scriptcommand_rm|rm]]'' command. | ||
- | ==== mget ==== | + | ==== [[mget]] mget ==== |
Use ''[[scriptcommand_get|get]]'' command. | Use ''[[scriptcommand_get|get]]'' command. | ||
Line 190: | Line 199: | ||
Note that WinSCP also supports ''mget'' as an alias to ''get'' command. | Note that WinSCP also supports ''mget'' as an alias to ''get'' command. | ||
- | ==== mkdir ==== | + | ==== [[mkdir]] mkdir ==== |
Use ''[[scriptcommand_mkdir|mkdir]]'' command. | Use ''[[scriptcommand_mkdir|mkdir]]'' command. | ||
- | ==== mput ==== | + | ==== [[mput]] mput ==== |
- | Use ''[[scriptcommand_get|put]]'' command. | + | Use ''[[scriptcommand_put|put]]'' command. |
You need to map previous ''[[#binary|binary]]'' or ''[[#ascii|ascii]]'' commands to ''-transfer'' switch. | You need to map previous ''[[#binary|binary]]'' or ''[[#ascii|ascii]]'' commands to ''-transfer'' switch. | ||
Line 217: | Line 226: | ||
Note that WinSCP also supports ''mput'' as an alias to ''put'' command. | Note that WinSCP also supports ''mput'' as an alias to ''put'' command. | ||
- | ==== open ==== | + | ==== [[open]] open ==== |
Use ''[[scriptcommand_open|open]]'' command. | Use ''[[scriptcommand_open|open]]'' command. | ||
Line 238: | Line 247: | ||
</code> | </code> | ||
- | convert to: | + | converts to: |
<code winscp> | <code winscp> | ||
Line 244: | Line 253: | ||
</code> | </code> | ||
- | ==== prompt ==== | + | Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. |
+ | |||
+ | ==== [[prompt]] prompt ==== | ||
WinSCP does not prompt for individual transfers during multi-file transfers, so there's no conversion needed. | WinSCP does not prompt for individual transfers during multi-file transfers, so there's no conversion needed. | ||
- | ==== put ==== | + | ==== [[put]] put ==== |
Use ''[[scriptcommand_put|put]]'' command. | Use ''[[scriptcommand_put|put]]'' command. | ||
Line 266: | Line 277: | ||
</code> | </code> | ||
- | ==== pwd ==== | + | ==== [[pwd]] pwd ==== |
Use ''[[scriptcommand_pwd|pwd]]'' command. | Use ''[[scriptcommand_pwd|pwd]]'' command. | ||
- | ==== quit ==== | + | ==== [[quit]] quit ==== |
Alias to ''[[#bye|bye]]'' command. | Alias to ''[[#bye|bye]]'' command. | ||
- | ==== quote ==== | + | ==== [[quote]] quote ==== |
Alias to ''[[#literal|literal]]'' command. | Alias to ''[[#literal|literal]]'' command. | ||
- | ==== recv ==== | + | ==== [[recv]] recv ==== |
Alias to ''[[#get|get]]'' command. | Alias to ''[[#get|get]]'' command. | ||
Note that WinSCP also supports ''recv'' alias. | Note that WinSCP also supports ''recv'' alias. | ||
- | ==== rename ==== | + | ==== [[rename]] rename ==== |
Use ''[[scriptcommand_mv|mv]]'' command. | Use ''[[scriptcommand_mv|mv]]'' command. | ||
Note that WinSCP also supports ''rename'' alias. | Note that WinSCP also supports ''rename'' alias. | ||
- | ==== rmdir ==== | + | ==== [[rmdir]] rmdir ==== |
Use ''[[scriptcommand_rmdir|rmdir]]'' command. | Use ''[[scriptcommand_rmdir|rmdir]]'' command. | ||
- | ==== send ==== | + | ==== [[send]] send ==== |
Alias to ''[[#put|put]]'' command. | Alias to ''[[#put|put]]'' command. | ||
Note that WinSCP also supports ''send'' alias. | Note that WinSCP also supports ''send'' alias. | ||
- | ==== type ==== | + | ==== [[type]] type ==== |
Command ''type ascii'' is an alias to ''[[#ascii|ascii]]'' command. | Command ''type ascii'' is an alias to ''[[#ascii|ascii]]'' command. | ||
Command ''type binary'' is an alias to ''[[#binary|binary]]'' command. | Command ''type binary'' is an alias to ''[[#binary|binary]]'' command. | ||
- | ==== user ==== | + | ==== [[user]] user ==== |
In WinSCP, username is specified as part of [[session_url|session URL]] parameter of WinSCP ''open'' command. | In WinSCP, username is specified as part of [[session_url|session URL]] parameter of WinSCP ''open'' command. | ||
Line 315: | Line 326: | ||
</code> | </code> | ||
- | ==== verbose ==== | + | Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. |
+ | |||
+ | ==== [[verbose]] verbose ==== | ||
There is no direct equivalent. | There is no direct equivalent. | ||
Line 352: | Line 365: | ||
exit | exit | ||
</code> | </code> | ||
+ | |||
+ | Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. | ||