How can I script WinSCP to create a directory for the current date and then post files to that folder?

We have a need to post files via WinSCP daily (approx 1,000-1,200 files).  How do we have WinSCP create a folder for the current date then put the files to that folder?

Here is what we are working from:

# Automatically answer all prompts negatively not to stall
# the script on errors
option batch on
# Disable overwrite confirmations that conflict with the previous
option confirm off
# open user:password@example.com
# Connect using a password
# Connect
open user:password@example.com
# Change remote directory      
cd /home/
# Force binary mode transfer
option transfer binary
# Upload current file to working directory
put *.xml
# Download file to the local server and place in SFTP2WIN directory
get *.xml SFTP2WIN\*.xml
# Disconnect
close
# Exit WinSCP
exit

Very simple and straight forward.  Put I need the batch of files put into a separate directory daily based on the date.

Many thanks for you help,

matt
TX_SCUBAAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Shift-3Commented:
You can use a batch script to create a WinSCP script on the fly and then execute it.

Paste the script below into a text file with a .cmd extension.  Running it will generate and execute a script named example.txt with the specified commands.  If you would like to use a different date format than yyyymmdd or you use Regional Options other than English (United States), please specify the format and what output you get when you run echo %date% at the command prompt.


@echo off
setlocal
 
set folder=%date:~10,4%%date:~4,2%%date:~7,2%
set script=example.txt
 
if exist "%script%" del "%script%"
 
echo option batch on >> "%script%"
echo option confirm off >> "%script%"
echo open user:password@example.com >> "%script%"
echo cd /home/ >> "%script%"
echo mkdir %folder% >> "%script%"
cd %folder% >> "%script%"
echo option transfer binary >> "%script%"
echo put *.xml >> "%script%"
echo get *.xml SFTP2WIN\*.xml >> "%script%"
echo close >> "%script%"
echo exit >> "%script%"
 
winscp.exe /console /script="%script%"

Open in new window

0
TX_SCUBAAuthor Commented:
Shift
The mkdir command or mk / md are not supported.  Any other ideas?

Thx,
matt
0
Shift-3Commented:
Hm, that ought to be pretty standard.  Are you sure there isn't a permissions issue?  

Can you create a directory in an interactive FTP session?  If so, what commands do you use?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

TX_SCUBAAuthor Commented:
Can only use a SFTP client to connect with.  I can create a folder using the GUI, by right clicking and selecting new directory.

Get unknown command with MK or MKDIR.

The CMD you wrote rocks!

~
0
TX_SCUBAAuthor Commented:
Disregard...

It seems as though the sesson has bumped me back to the command line.

Working to see if the rest of the script works.

~
0
TX_SCUBAAuthor Commented:
Ok now I am getting an Error code 14 and the directory is not being created on the server.

~
0
TX_SCUBAAuthor Commented:
Worked like a charm once I removed the space at the end of the mkdir 20081919 line in the file and removed the folder that had already been created.

Many thanks Shift-3

matt
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.