Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

xeric

Awesome, I'll give this a look and see if I can get it going. Thanks again for the help!
martin

Re: Append number to file names

Right, I didn't realize that. Sorry.

Instead, you can use WinSCP .NET assembly from e.g. a PowerShell script. That will allow you do do whatever you want.

You can start with this example:
https://winscp.net/eng/docs/library_example_recursive_download_custom_error_handling#powershell

There just put this code
$number++
$localFilePath += $number

before
$transferResult = $session.GetFiles($remoteFilePath, $localFilePath)

(untested, but should work – this time).
xeric

Re: Append number to file names

martin wrote:

You cannot append an incrementan number. But you can append current milliseconds using %TIMESTAMP% syntax. And you can use it even for the date:
https://winscp.net/eng/docs/scripting#timestamp

"get * -transfer=ascii -filemask=EVT_*.csv>1D R:\Files\EVT_%%TIMESTAMP#yyyy-mm-dd-hh-nn-ss-zzz%%.csv" ^

I thought this would work, but it still just overwrites the file with the same name. So if there are 2 files, it will download and use the same timestamp filename for both files. Any other ideas for how I can differentiate the names so they don't get overwritten?
martin

Re: Append number to file names

You cannot append an incrementan number. But you can append current milliseconds using %TIMESTAMP% syntax. And you can use it even for the date:
https://winscp.net/eng/docs/scripting#timestamp

"get * -transfer=ascii -filemask=EVT_*.csv>1D R:\Files\EVT_%%TIMESTAMP#yyyy-mm-dd-hh-nn-ss-zzz%%.csv" ^
xeric

Append number to file names

I have a script that runs once per day to download files from a remote server. Because of the way they name the files, the names are sometimes too long. So currently I have it renaming the files and appending the date to the end (today variable is set in batch script independent of WinSCP functionality), but if there are multiple files I'm not sure how to handle it. There will be between 1 and 5 files at a time, so I was wondering if there is a way I can just add a number to the filename such as 1, 2, 3, etc.

It's currently in a batch script, and the WinSCP command is listed below. I am also open to other solutions if anyone has an idea. Thanks in advance.

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  /command ^
    "open sftp://redacted/ -hostkey=""redacted=""" ^
    "cd /Home/bhpa19658/from_bh" ^
    "get * -transfer=ascii -filemask=EVT_*.csv>1D R:\Files\EVT_%today%.csv" ^
    "exit" >> R:\Logs\EventsLog_%today%.txt