Windows Server 2008 – 从.CMD调用FTP – 将parameter passing给FTP文件?

我从.cmd文件中调用以下内容:

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

web-daily.txt文件是一个ftpinput文件,其内容与此类似:

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

我需要能够将当前date传递给ftpinput文件。 这是可行的,而不必执行一个程序,实际上修改web-daily.txt? 这是因为web-daily.7z实际上是web-daily_%date:〜10,4%%date:〜4,2%%date:〜7,2%.7z(或web-daily_yyyy_MM_dd.7z)。

如果可能的话,我想把这个date作为参数传入。

我同意,这将以北美格式进行。 可能有一种使其具有普遍性的方法,但是如果服务器不会改变,这可能并不重要。

 @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 

以下是如何有效地将dateparameter passing给Windows上的FTPinput文件。

 @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 

这将发送web-daily_yyyy_mm_dd.7z到FTP服务器。

 Rem: This worked for me @echo off setlocal @echo off > %0.ftp >> %0.ftp echo open **server** >> %0.ftp echo **userid** >> %0.ftp echo **password** >> %0.ftp hash >> %0.ftp asc >> %0.ftp echo lcd c:\program\data\ (your local path) >> %0.ftp echo cd fam/user/tcs/in/hold (your ftp path) >> %0.ftp echo get 01000%date:~10,4%%date:~4,2%%date:~7,2%01.txt >> %0.ftp echo quit ftp -s:%0.ftp del %0.ftp rem below line gets a file with today's date from the ftp server 01000%date:~10,4%%date:~4,2%%date:~7,2%01.txt