Windows 如何从FTP下载今天和昨天更新的数据?
我想下载更新的数据从我的FTP按名称文件与变量昨天和今天,结构文件如下 每日(城市)uuuyyymmdd.xlsx 我试过这个密码 daily.batWindows 如何从FTP下载今天和昨天更新的数据?,windows,batch-file,ftp,winscp,Windows,Batch File,Ftp,Winscp,我想下载更新的数据从我的FTP按名称文件与变量昨天和今天,结构文件如下 每日(城市)uuuyyymmdd.xlsx 我试过这个密码 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
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 Reg_8@192.168.8.1
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
如果我没有运行此脚本…您将在单个文件中组合Windows和WinSCP命令。那是不可能的。从阅读文章开始 您的脚本太复杂了,因为您没有使用
一种简单的方法(
daily.txt
):
(只有这样,才能从daily.txt中丢弃所有其他代码)
%TIMESTAMP#yyyymmdd%
将解析为20161006
%TIMESTAMP-1D#yyyymmdd%
将解析为20161005
(从2016-10-06起)
为此,您需要WinSCP5.9及更新版本
通常,您应该从批处理文件调用,而不是从winscp.exe/console
调用
open ftp://user:mypassword@ftp.example.com/
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"