Differences

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

guide_ftp_script_to_sftp 2018-11-09 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://docs.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]].+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.
Line 59: Line 59:
Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. 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>
===== Converting Commands ===== ===== Converting Commands =====
 +
==== [[append]] append ==== ==== [[append]] append ====
Use ''[[scriptcommand_put|put]] -append <localfile> [remotefile]''. Use ''[[scriptcommand_put|put]] -append <localfile> [remotefile]''.
Line 107: 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 125: 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.
Line 146: 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.
Line 162: Line 169:
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 192: 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 219: 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 248: Line 255:
Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol.
-==== prompt ====+==== [[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.
Line 270: 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.
Line 279: Line 286:
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.
Line 321: Line 328:
Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol. Replace the ''%%sftp://%%'' with the ''%%ftp://%%'', if you keep using the FTP protocol.
-==== verbose ====+==== [[verbose]] verbose ====
There is no direct equivalent. There is no direct equivalent.

Last modified: by martin