Frage Windows Server 2008 - FTP von .CMD aufrufen - Einen Parameter an eine FTP-Datei übergeben?


Ich rufe folgendes aus einer .cmd Datei auf:

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

Die Datei web-daily.txt ist eine FTP-Eingabedatei mit ähnlichem Inhalt wie folgt:

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

Ich muss das aktuelle Datum an die FTP-Eingabedatei übergeben können. Ist das möglich, ohne ein Programm ausführen zu müssen, das web-daily.txt tatsächlich modifiziert? Dies liegt daran, dass web-daily.7z tatsächlich web-daily_% date ist: ~ 10,4%% Datum: ~ 4,2%% date: ~ 7,2% .7z (oder web-daily_yyyy_MM_dd.7z).

Ich würde dieses Datum gern als Parameter übergeben, wenn möglich.


5
2018-02-20 23:10


Ursprung




Antworten:


Ich stimme zu, das wird es tun, in nordamerikanischen Format. Es mag einen Weg geben, es universal zu machen, aber das ist vielleicht nicht wichtig, wenn der Server sich nicht ändert.

@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

1
2018-02-21 18:27





So übergeben Sie einen Date-Parameter effektiv an eine FTP-Eingabedatei in 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

Dadurch wird web-daily_yyyy_mm_dd.7z an den FTP-Server gesendet.


1
2018-02-20 23:25



Funktioniert nur in Ihrem Gebietsschema. Für mich _-0_-2 wird anstelle des Datums eingefügt. Seien Sie sehr vorsichtig mit Daten in Batch-Dateien. - Joey
Bietet% date% etwas Sinnvolleres? Es muss möglicherweise anders geparst werden. - Brian Webster


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

-2
2017-12-30 20:21