2016-10-06 4 views
2

Ich möchte mit Namen Datei mit variabler gestern und heute, Strukturdatei wie dieseWie neuere Daten heute und gestern von FTP herunterladen?

Daily_ (Stadt) _ (yyyymmdd) .xlsx

Ich habe diesen Code versucht, neuere Daten von meinem FTP-Download

daily.bat

winscp.exe /console /script=daily.txt 

daily.txt

::: Begin set date 

for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (call :set_date %%i %%j %%k %%l) 
goto :end_set_date 

:set_date 
if "%1:~0,1%" gtr "9" shift 
for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo,^|date') do (set %%m=%1&set %%n=%2&set %%o=%3) 
goto :eof 

:end_set_date 
::: End set date 

set /a today=%dd% 
set /a yesterday=%dd%-1 

@echo off 
open [email protected] 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%yy%%mm%%today%.xlsx" "D:\FTP\Makassar\2016\daily" 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%yy%%mm%%yesterday%.xlsx" "D:\FTP\Makassar\2016\daily" 
pause 

Wenn ich das Skript ausführen nicht passieren ...

Antwort

3

Sie kombinieren Windows- und WinSCP Befehle in einer einzigen Datei. Das ist nicht möglich. Beginnen Sie mit dem Lesen der guide to automating file transfers from FTP server or SFTP server.

Und Ihr Skript ist zu kompliziert, weil Sie die WinSCP %TIMESTAMP% syntax nicht verwenden.


Eine einfache Art und Weise (daily.txt):

open ftp://user:[email protected]/ 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%TIMESTAMP#yyyymmdd%.xlsx" "D:\FTP\Makassar\2016\daily" 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%TIMESTAMP-1D#yyyymmdd%.xlsx" "D:\FTP\Makassar\2016\daily" 

(nur das, verwerfen alle anderen Code aus daily.txt)

Die %TIMESTAMP#yyyymmdd%-20161006 lösen wird.
Die %TIMESTAMP-1D#yyyymmdd% wird auf 20161005 aufgelöst (Stand 2016-10-06).

Sie benötigen hierfür WinSCP 5.9 und neuer.


auch in der Regel sollten Sie die winscp.com aus einer Batch-Datei aufrufen, nicht die winscp.exe /console.

Verwandte Themen