﻿@echo off

rem Get today's year, month, day
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set year=%%a& set month=%%b& set day=%%c)

rem Modify the following line for your environment
set TARGET=D:\xxx
set TARGETNAME=xxx
set BACKUPDIR=D:\xxx
set BACKUPFILE=%BACKUPDIR%\%year%\%TARGETNAME%_%year%%month%%day%.zip
set LOGFILE=%TARGETNAME%_backup.log
set BATDIR=D:\script
set WINSCPDRIVE=D:
set WINSCPDIR=D:\tools\WinSCP


rem Compress the target directory before ftp
rem 7z a -r %BACKUPFILE% %TARGET%\*

if not exist %BACKUPDIR%\%year% mkdir %BACKUPDIR%\%year%

if not exist %BACKUPFILE% goto nofile
goto ftpsession

:nofile
echo [FAILURE] can't find %BACKUPFILE% >> %LOGFILE%
echo.>> %LOGFILE%
goto end

:ftpsession

set FTPSERVER=1xxx
set USERNAME=xxx
set PASSWORD=xxx

echo ---=== ftp session begins ===--->> %LOGFILE%
echo ftp %BACKUPFILE% to %FTPSERVER% >> %LOGFILE%


rem ==WinSCP ftps script.txt==
%WINSCPDRIVE%
cd %WINSCPDIR%

rem ==windows WinSCP script.txt==
echo option batch abort >> WinSCP_script.txt
echo option confirm off >> WinSCP_script.txt
echo option transfer binary >> WinSCP_script.txt
echo open ftps://%USERNAME%:%PASSWORD%@%FTPSERVER% -explicit -certificate="xxx" >> WinSCP_script.txt
echo cd FPS_AP >> WinSCP_script.txt
echo put %BACKUPFILE% >> WinSCP_script.txt
echo close >> WinSCP_script.txt
echo exit >> WinSCP_script.txt

winscp.exe /console /script=WinSCP_script.txt /log=%BATDIR%\%LOGFILE%

type WinSCP_script.txt

rem del WinSCP_script.txt


echo ---=== ftp session ends ===--->> %LOGFILE%
echo. |time | findstr "現在時間">> %LOGFILE%
echo.>> %LOGFILE%

:end