Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 5377
  • Last Modified:

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
0
TX_SCUBA
Asked:
TX_SCUBA
  • 5
  • 2
1 Solution
 
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
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
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

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now