缘起一个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_csv\upload_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

win下自动sftp脚本定时下载文件的更多相关文章

  1. Xshell5下利用sftp上传下载传输文件

    sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH ...

  2. SFTP上传下载文件、文件夹常用操作

    SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd  d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文 ...

  3. 吻逗死(windows)系统下自动部署脚本(for java spring*)及linux命令行工具

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10051647.html (^^)(^^)自動部署腳本原本在上個公司就在使用,由於近期同事需要手動部署一個Spr ...

  4. java实操之使用jcraft进行sftp上传下载文件

    sftp作为临时的文件存储位置,在某些场合还是有其应景的,比如对账文件存放.需要提供一个上传的工具类.实现方法参考下: pom.xml中引入类库: <dependency> <gro ...

  5. Java Sftp上传下载文件

    需要使用jar包  jsch-0.1.50.jar sftp上传下载实现类 package com.bstek.transit.sftp; import java.io.File; import ja ...

  6. Mac下通过shell脚本修改properties文件

    通过shell脚本替换属性文件中的某行记录 假设有如下属性文件 demo.properties user.name=test user.password=123456 ................ ...

  7. Linux下通过ssh上传下载文件

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jun8148/article/deta ...

  8. debian下通过scp 上传下载文件

    1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 2.从服务器上下载文件 scp username@servername:/path ...

  9. sftp协议下如何上传和下载文件

    sftp连接: sftp hostname@IP/域名 1.上传: put filename 2.下载: get filename 参考连接:https://linuxstory.org/how-to ...

随机推荐

  1. Windows Phone 性能优化(一)

    在实际的项目开发过程中,应用的性能优化是一个永恒的话题,也是开发者群里最常讨论的话题之一,我在之 前的公司做 wp项目时,也遇到过性能的瓶颈.当页面中加载的内容越来越多时,内存涨幅非常明显(特别是 一 ...

  2. Missing separate debuginfos, use: debuginfo-install

    环境:CentOS6.2 64位 操作:使用gdb调试C++查询MySQL数据库的程序 原因: 解决办法: 1.  修改文件/etc/yum.repos.d/CentOS-Debuginfo.repo ...

  3. CodeForces 459D Pashmak and Parmida's problem

    Pashmak and Parmida's problem Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d ...

  4. 椭圆曲线密码体制(ECC)简介

    一.椭圆曲线的基本概念 简单的说椭圆曲线并不是椭圆,之所以称为椭圆曲线是因为他们是用三次方程来表示,并且该方程与计算椭圆周长的方程相似. 对密码学比较有意义的是基于素数域GF(p)和基于二进制域(GF ...

  5. sql循环插入测试数据

    declare @i int set @i=1while @i<61 begin insert into T_RolePower values(1,@i,1)set @i=@i+1 end

  6. 29个酷炫的Firefox配置参数

    你可能安装了许多的firefox插件以增加浏览器的功能,但是如果你想更好地使用firefox,学习如何配置about:config参数是很有必要的. about:config配置页包含了所有的fire ...

  7. C51寄存器详解(Reg51.h)

    Reg51.h 这个头文件将C程序中能用到的寄存器名或寄存器中某位的名称与硬件地址值做了对应,在程序中直接写出这些名称,集成开发环境就能识别,并最终转换成机器代码,实现对单片机各硬件资源的准确操控. ...

  8. Linux - 用户管理常用命令

    1.查看Linux已经存在的用户: [root@CMCC_91 ~]# cut -d : -f 1 /etc/passwd [root@CMCC_91 ~]# cat /etc/passwd |awk ...

  9. 经典SQL基础回顾

    孔子有云:温故而知新,可以为师矣.既然孔老圣人都云了,咱今天就一起来重温一下MS SQL吧.开篇声明一下:大部分都是基础内容,SQL非常熟练的就别浪费您的时间了,因为这年头,大家时间都挺宝贵的.但是如 ...

  10. RAID的简单说明

    RAID,为 Redundant Arrays of Independent Disks 的简称,中文为廉价※冗余磁盘阵列 . 磁盘阵列 其实也分为软阵列 (Software Raid) 和硬阵列 ( ...