I am calling the following from a .cmd file:

 ftp -d -s:D:\backup\web-daily.txt

The web-daily.txt file is an ftp input file with similar contents to this:

open <server>
<login>
<password>
put d:\backup\web-daily.7z web-daily.7z
quit

I need to be able to pass the current date to the ftp input file. Is this doable without having to execute a program that actually modifies web-daily.txt? This is because web-daily.7z is actually web-daily_%date:~10,4%%date:~4,2%%date:~7,2%.7z (or web-daily_yyyy_MM_dd.7z).

I'd like to pass this date in as a parameter if possible.

Thanks

link|improve this question

feedback

2 Answers

up vote 1 down vote accepted

I agree, this will do it, in North American format. There may be a way to make it universal, but that may not be important if the server won't change.

@echo off
setlocal

@echo off > %0.ftp
>> %0.ftp echo open <server>
>> %0.ftp echo <user>
>> %0.ftp echo <pw>
>> %0.ftp echo put d:\backup\web-daily_%date:~10,4%_%date:~4,2%_%date:~7,2%.7z web-daily_%date:~10,4%_%date:~4,2%_%date:~7,2%.7z
>> %0.ftp echo quit

ftp -s:%0.ftp
link|improve this answer
feedback

Here's how to effectively pass a date parameter to an FTP input file on windows.

@echo off
setlocal

@echo off > %0.ftp
>> %0.ftp echo open <server>
>> %0.ftp echo <user>
>> %0.ftp echo <pw>
>> %0.ftp echo put d:\backup\web-daily_%date:~10,4%_%date:~4,2%_%date:~7,2%.7z web-daily_%date:~10,4%_%date:~4,2%_%date:~7,2%.7z
>> %0.ftp echo quit

ftp -s:%0.ftp

This will send web-daily_yyyy_mm_dd.7z to the ftp server.

link|improve this answer
1  
Only works in your locale. For me _-0_-2 is inserted in place of the date. Be very careful with dates in batch files. – Joey Feb 21 '10 at 11:59
Does %date% give you something more meaningful? It may have to be parsed differently. – Brian Webster Feb 21 '10 at 17:56
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.