Solved

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

Posted on 2008-10-17
7
4,634 Views
Last Modified: 2012-08-14
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
0
Comment
Question by:TX_SCUBA
  • 5
  • 2
7 Comments
 
LVL 38

Expert Comment

by:Shift-3
ID: 22745276
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
 

Author Comment

by:TX_SCUBA
ID: 22754262
Shift
The mkdir command or mk / md are not supported.  Any other ideas?

Thx,
matt
0
 
LVL 38

Accepted Solution

by:
Shift-3 earned 500 total points
ID: 22754289
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
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 

Author Comment

by:TX_SCUBA
ID: 22754491
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
 

Author Comment

by:TX_SCUBA
ID: 22754548
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
 

Author Comment

by:TX_SCUBA
ID: 22754657
Ok now I am getting an Error code 14 and the directory is not being created on the server.

~
0
 

Author Closing Comment

by:TX_SCUBA
ID: 31507204
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

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

The following is a collection of cases for strange behaviour when using advanced techniques in DOS batch files. You should have some basic experience in batch "programming", as I'm assuming some knowledge and not further explain the basics. For some…
Making a simple AJAX shopping cart Couple years ago I made my first shopping cart, I used iframe and JavaScript, it was very good at that time, there were no sessions or AJAX, I used cookies on clients machine. Today we have more advanced techno…
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now