zoukankan      html  css  js  c++  java
  • win下自动sftp脚本定时下载文件

    缘起一个BA与客户交流的软件。但因为数据不能通过系统直连的方式进行获取。

    对方只提供每天一份全量数据到指定文件夹下,我方自动通过sftp的方式去拉取。

    一个只有简单几行的操作,想必肯定是不可能需写程序去实现的吧。

    第一时间就想到了windows的定时任务去执行一个脚本就好。

    找来找去,网上一堆的ftp脚本。sftp的少得可怜。

    后面找到了此文:https://www.cnblogs.com/binw/p/4065607.html

    但因为不懂winscp。里面的代码也不大懂。

    折腾一天后,发现putty可以sftp,

    写出了以下脚本

    psftp -P 2122 username@122.135.172.119 -pw awUV2kCU
    cd /upload_ba
    lcd D:xhx_ba_csv
    mget *.csv

    但有一个问题,执行第一行后就进入psftp程序了,并没有再执行下面的代码。

    后来又只能返回去看winscp了,折腾一两小时后,终于成功了。

    CD /d D:WinSCP
    #定义要获取的文件名
    set filename=T_sulwba_%date:~0,4%%date:~5,2%%date:~8,2%
    #通过winscp直接带参数的方式自动获取文件
    winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://<username>:<pwd>@<ip>:<port>" "option transfer binary" "get /upload_ba/%filename%.csv D:xhx_ba_csvupload_ba" "exit" 

     最后,在windows的计划任务中设定每日自动此bat文件即可。

    附:windows下日期格式

    1.获取日期

    格式:  %date%

    结果:  2012-07-31

     

    2.获取时间

    格式:  %time%

    结果:  10:21:21.68


    3.获取日期和时间

    格式:   %date:~x,y%以及%time:~x,y%

    说明:   x是开始位置,y是取得字符数


    比如说我要获取完整的日期和时间,

    格式:   %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

    结果:   20120731111039


    但是如果时间早于10点,那么只显示日期不显示时间,如:20120731,如何解决呢?

    格式:   %date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%

    结果:   20120731052539

  • 相关阅读:
    userInteractionEnabled
    shareInstance
    UISearchBar
    IOS开发之UIView总结1
    IOS Table中Cell的重用reuse机制分析
    显示/隐藏Mac隐藏文件
    iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途
    2020/4/7
    2020/4/6
    2020/4/4
  • 原文地址:https://www.cnblogs.com/jasonlam/p/8309351.html
Copyright © 2011-2022 走看看