Disclaimer #1: I posted this question on the WinSCP's forum but haven't received any replies and this issue is time-sensitive.
Disclaimer #2: I'm basing the legitimacy of this cross-post on advice found on the subject from Meta.
With that preamble...
Up until now, I have been been using WS_FTP but would like to switch to WinSCP. I'm trying to convert this WS_FTP script into WinSCP:
"C:\Program Files (x86)\Ipswitch\WS_FTP 12\wsftppro.exe"
-s "sftp://USERNAME:PASSWORD@ftpus.pointclickcare.com/USERNAME/logs/*.sqb"
-d "local:C:\PccDataRelay\LogDownloads\"
-rename tx_[yyyy]-[mm]-[dd]_[hh]-[tt]-[ss]_[OnlyName].[OnlyExt]
-move "/USERNAME/logs/transferred/"
I've been able to convert it partially:
cd C:\PccDataRelay\TestDownloads
"C:\Program Files (x86)\WinSCP\winscp.com" /ini=nul /log=C:\PccDataRelay\AuditLogs\incremental_download.log /command ^
"open sftp://USERNAME:PASSWORD@ftpus.pointclickcare.com/USERNAME/logs/ -hostkey=""ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx""" ^
"get /USERNAME/logs/*.sqb" ^
"exit"
But that only downloads the files. How can I get it to rename and move the original files while also leaving them in-place on the FTP site?
WinSCP does not have a feature similar to
-rename
and-move
switches. So it's not easy to implement this task in a simple scripting so that it behaves transactionally (renames and moves only the files that were successfully downloaded)But you can use WinSCP .NET assembly from a PowerShell script.
Some references that this answer is based on:
See also: