我从.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