Назад | Перейти на главную страницу

Windows Server 2008 - вызов FTP из .CMD - передать параметр в файл FTP?

Я вызываю следующее из файла .cmd:

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

Файл web-daily.txt - это входной ftp-файл с аналогичным содержимым:

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

Мне нужно передать текущую дату во входной файл ftp. Возможно ли это без выполнения программы, которая фактически изменяет web-daily.txt? Это потому, что web-daily.7z на самом деле web-daily_% date: ~ 10,4%% date: ~ 4,2%% date: ~ 7,2% .7z (или web-daily_yyyy_MM_dd.7z).

Я бы хотел передать эту дату в качестве параметра, если это возможно.

Вот как эффективно передать параметр даты во входной файл FTP в 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

Это отправит web-daily_yyyy_mm_dd.7z на ftp-сервер.

Я согласен, это будет сделано в североамериканском формате. Может быть способ сделать его универсальным, но это может не иметь значения, если сервер не будет меняться.

@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
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