Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

share|improve this question
add comment

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
share|improve this answer
add comment

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.

share|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. –  Јοеу Feb 21 '10 at 11:59
    
Does %date% give you something more meaningful? It may have to be parsed differently. –  George W Bush Feb 21 '10 at 17:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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