WinSCP putting multiple files on SFTP site

scriptsftpwildcardswinscp

With WinSCP 5.2 I wanted to put multiple files with a file extension .pgp on an SFTP site. When I tested my original command line (see below) and it only placed the first *.pgp alphabetical file (D:\a.csv.pgp) on the SFTP site. I tried specifying *.PGP and *.pgp without any changes – only one file (D:\a.csv.pgp) would be copied each time. I got it to work for all files only if I specified a put command for each .pgp file. Any ideas on how to put all *.pgp on the SFTP site?

Original Command Line – Does Not Work
d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\*.pgp" "close" "exit"

Works
d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\a.csv.pgp" "put D:\b.csv.pgp" "put D:\c.csv.pgp" "put D:\d.csv.pgp" "put D:\e.csv.pgp" "put D:\f.csv.pgp" "put D:\g.csv.pgp" "put D:\h.csv.pgp" "put D:\i.csv.pgp" "close" "exit"

Best Answer

You seem to be using SFTP mode rather than SCP mode

Try mput *.pgp (a guess based on FTP commands)

The manual says wildcards should work

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 to store file(s) under different name. Destination directory must end with slash. Filename can be replaced with Windows wildcard1) to select multiple files. To upload more files to current working directory use ./ as the last parameter.

put *.html *.png /home/martin/backup/*.bak

You MUST put the target directory as the last item in the quoted command.

d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\*.pgp ""C:\Documents and Settings\newtowinscp\Documents\Backups""" "close" "exit"

Related Question