kokkain: (Default)
[personal profile] kokkain
Можно долго возиться пытаясь вычесть единицу и учесть месяц и даже високосный год. На sql.ru прочитал такое решение, оно работает.
Надо запустить прогу и потом отправить результат на ftp.


:chcp 1251
: сдвигаем дату
tzutil /s "Dateline Standard Time"

set log_dir=C:\util\lftp\copy_log\
echo date
set yy=%date:~8,2%
set mm=%date:~3,2%
set d=%date:~0,2%
: если день меньше 10 берем только одну цифру!
if %d% LSS 10   (
set dd=%date:~1,1%
) else (
set dd=%date:~0,2%
)
: вычитаем единицу
:set /a dd-=1
: если день меньше 10 прилепляем ноль перед днем
if %d% LSS 10   (
set dd=0%dd%
) else (
set dd=%dd%
)
set my_date_minus=%dd%%mm%%yy%
: получили 6 цифр ддммгг предыдущего дня

: восстановим часовой пояс
tzutil /s "Russian Standard Time"
set yy=%date:~8,2%
set mm=%date:~3,2%
set d=%date:~0,2%
: если день меньше 10 берем только одну цифру!
if %d% LSS 10   (
set dd=%date:~1,1%
) else (
set dd=%date:~0,2%
)
: вычитаем единицу
:set /a dd-=1
: если день меньше 10 прилепляем ноль перед днем
if %d% LSS 10   (
set dd=0%dd%
) else (
set dd=%dd%
)
set my_date=%dd%%mm%%yy%

set h=%time:~0,2%
if %h% LSS 10   (
set hh=%time:~1,1%
) else (
set hh=%time:~0,2%
)

set mm=%time:~3,2%
set my_time=%hh%%mm%

set mylog= %log_dir%%my_date%___%my_time%.txt
:запускаем формирование файла
C:\util\watcomm\dbf2xml.exe >>  %mylog%

set my_code=61037001
set my_file=/cygdrive/c/util/watcomm/EXP/%my_code%_%my_date_minus%_%my_date_minus%.xml
echo %my_file% copy started at %time% >>  %mylog%

:pause
C:\util\lftp\lftp\bin\lftp.exe -p 3021 -u user,pass-e "put %my_file%; bye;" ftp://ftp.ru >> %mylog%
echo . >> %mylog%
echo %my_file% copy ended at %time% >>  %mylog%
:pause

Profile

kokkain: (Default)
kokkain

April 2017

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 10:40 am
Powered by Dreamwidth Studios