Windows Server 2008 - Chamando o FTP de .CMD - Passar um parâmetro para um arquivo FTP?

5

Estou chamando o seguinte de um arquivo .cmd:

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

O arquivo web-daily.txt é um arquivo de entrada ftp com conteúdo semelhante a este:

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

Eu preciso ser capaz de passar a data atual para o arquivo de entrada ftp. Isso é factível sem ter que executar um programa que realmente modifique web-daily.txt? Isso ocorre porque web-daily.7z é, na verdade, web-daily_% date: ~ 10,4% % date: ~ 4,2% % date: ~ 7,2% .7z (ou web- daily_yyyy_MM_dd.7z).

Gostaria de passar essa data como um parâmetro, se possível.

    
por Brian Webster 21.02.2010 / 00:10

3 respostas

1

Concordo, isso será feito no formato norte-americano. Pode haver uma maneira de torná-lo universal, mas isso pode não ser importante se o servidor não mudar.

@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
    
por 21.02.2010 / 19:27
1

Veja como passar efetivamente um parâmetro de data para um arquivo de entrada FTP no 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

Isso enviará web-daily_yyyy_mm_dd.7z para o servidor ftp.

    
por 21.02.2010 / 00:25
-2
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
    
por 30.12.2014 / 21:21