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

martin

Re: How to download to new folder

WinSCP script cannot create local folders. You have to create the folder in the batch file, before you start WinSCP. But you can use WinSCP %TIMESTAMP% syntax to generate the folder name.
See Formatting Timestamp in Batch File.
So something like this:
set TIMESTAMP_FORMAT=yyyy-mm-dd
 
for /F "tokens=* USEBACKQ" %%F in (
    `winscp.com /command "echo %%TIMESTAMP#%TIMESTAMP_FORMAT%%%" "exit"`
) do set TIMESTAMP=%%F
 
set TARGET_PATH=C:\Users\Data\%TIMESTAMP%
mkdir %TARGET_PATH%
 
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  ...
  /command ^
    ...
    "lcd ""%TARGET_PATH%""" ^
    ...
KJ88

How to download to new folder with today date

Hi,

I'm new to WinSCP and to scripting so please forgive my lack of knowledge.

I have created a .bat file to automatically download several files from an FTP server. I have added this .bat file to Windows Task Scheduler so it will run several times each day.

Now I would like to know how to add a function to my .bat file that creates a new folder with the current date and time, then downloads the files into the newly created folder.

My .bat file currently looks like this:
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^ 
  /log="C:\Users\xxxxxx\WinSCP.log" /ini=nul ^
  /command ^
    "open ftp://anonymous:anonymous%%40example.com@ftp.com.au/" ^
    "cd /xxx/xxx/xxx/xxx" ^
    "lcd ""C:\Users\Data""" ^
    "get xxxx1.nc.gz" ^
    "get xxxx2.nc.gz" ^
    "get xxxx3.nc.gz" ^
    "exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
  echo Success
) else (
  echo Error
)
exit /b %WINSCP_RESULT%

Is there a way to have this same script create a new folder with today date and time in C:\Users\Data and then download the files there?

Many thanks