1. 脚本功能:

  实现2个服务器间文件的传递,例如从A服务器往B服务器上传文件

2. 实现步骤:

  2.1 服务器连结,找到指定路径,读取所需要上传的文件,将文件名称复制到一个文件下

    (此处考虑可能需要筛选特定的文件,或者判断文件个数,这样处理会比较方便)

  2.2 执行copy文件

  2.3 删除不需要的文件

    (这里考虑,可能是联机备份,只保留部分数据文件,需要删除不需要的数据文件,在这处理)

3. 代码展示

@echo off

REM *** copy文件参数设定
set Passwd="password"
set User="username"
set LogPath="日志存放路径"
set FullbakPath="A服务器需要复制到B服务器的文件路径"

REM *** 数据库连结设定
   (这里做数据库连结是因为本脚本需要保留部分天数的文件,需要删除前7天文件
     因为bat单做日期加减比较麻烦,所以采用数据库取值方法)
set DB_SERVER="数据库rul"
set DB_NAME="数据库实例"
set DB_USER="数据库用户"
set DB_PASS="数据库密码"

REM *** 数据库前7日设定
REM *** 因为这里使用sqlserver 相应其他数据库请自己调整oracle mysql等
set sql="SELECT CONVERT(NVARCHAR,DATEADD(DAY,-7,CONVERT(DATETIME,CAST(YMD AS NVARCHAR),101)),112) FROM M_DATE_CONTROL WHERE KEY_CD=2"

REM *** 服务连结
net use \\127.0.0.1\backfull %Passwd% /user:%User%

REM *** 设定日期,设定Log日志文件名称
set date=%date:~0,4%%date:~5,2%%date:~8,2%
set JOBLOG=DBBACK.log

echo ********** START (%date:~0,10% %time:~0,8%) ********** >> %LogPath%\%date%\%JOBLOG%

这里将符合的附件读取到一个文本文档中,以便后续使用
(for /f "tokens=*" %%i in ('dir /a-d /b /s %FullbakPath%\*.* ') do (
    echo %%~nxi
))>fullbak.log

这里是copy文件的主要执行步骤,从文本文档读取,然后进行copy,这里有一个文件数量的判断,可以进行自我调整
for /f "tokens=2 delims=:" %%a in ('find /c /v "" fullbak.log') do (
  if %%a equ 7 for /f %%i in (fullbak.log) do xcopy %FullbakPath%\%%i \\127.0.0.1\backfull\%date%\ /s /e /i /y
)

这里进行文件删除的操作,将7天前文件删除
for /f "skip=2" %%i in ('osql.exe -S %DB_SERVER% -U %DB_USER% -P %DB_PASS% -d %DB_NAME% -Q %sql%') do (
  set RESULT=%%i
  goto :RESULT
)

判断文件是否存在,存在就执行删除
:RESULT
if exist \\127.0.0.1\backfull\%RESULT% rd /s /q  \\127.0.0.1\backfull\%RESULT%

echo ********** END (%date:~0,10% %time:~0,8%) ********** >> %LogPath%\%date%\%JOBLOG%

pause

以上为文本文档编写,大家还请见谅。

  

windows BAT脚本2个服务器间传递文件的更多相关文章

  1. windows bat脚本编写

    windows批处理 (cmd/bat) 编程详解 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码 ...

  2. Windows bat脚本的for语句

    Windows bat脚本的for语句基本形态如下: 在cmd窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do ...

  3. 【原创】Linux基础之linux服务器服务器间拷贝文件

    linux服务器服务器间拷贝文件,有几种方式: 1 如果是定时任务,可以用rsync 2 如果是基于ssh登录,可以用scp,优点是可以实现远程到远程的拷贝,缺点是需要账号密码 upload: scp ...

  4. 进程间传递文件描述符——sendmsg和recvmsg函数

    先引入一个例子,该程序的目的是子进程向父进程传递文件描述符,并通过该文件描述符读取buf. #include <func.h> int main(){ int fds[2]; pipe(f ...

  5. 进程间传递文件描述符fd

    众所周知,子进程会继承父进程已经打开的文件描述符fd,但是fork之后的是不会被继承的,这个时候是否无能无力了?答应是NO.Linux提供了一个系统调用sendmsg,借助它,可以实现进程间传递文件描 ...

  6. Linux 进程间传递文件描述符

    文章目录 文件描述符 文件数据结构 共享文件 UNIX域socket实现传递文件描述符 进程间传递打开的文件描述符,并不是传递文件描述符的值.先说一下文件描述符. 文件描述符 对内核来说,所有打开的文 ...

  7. bat脚本删除一周前的文件

    bat脚本删除7天前的文件 @echo off forfiles /p D:\logstash-1.4.2\bin\ /m *.log -d -7 /C "cmd /c del /f @pa ...

  8. windows bat脚本实现ftp自动下载 删除

    现在有一个需求就是把远程某个文件下面的图片,下载到本地,并且删除下载成功的的文件,而且远程目录下的那个图片会随时增加.假设一下如果所有的脚本都写好了,那么就需要调用windows上的计划任务定时执行脚 ...

  9. java 调用windows bat脚本

    当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...

随机推荐

  1. iOS-Http断点续传

    下载LOFTER客户端IOS Http断点续传浅析 http实现断点续传的关键地方就是在httprequest中加入“Range”头. //设置Range头,值:bytes=x-y;x:开始字节,y: ...

  2. Flutter 页面下拉刷新和上拉加载

    flutter_easyrefresh 正如名字一样,EasyRefresh很容易就能在Flutter应用上实现下拉刷新以及上拉加载操作,它支持几乎所有的Flutter控件.它的功能与Android的 ...

  3. Arduino基础入门—3.连接 IIC 1602 LCD显示文字

    1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...

  4. 1. PHP基本语法规则

    1.1 PHP标记: PHP语言,是一种可以嵌入到“html”代码中的后台处理语言(程序) 有以下几种标记形式,只推荐第一种.  1,<?php   php代码写在这里.....  ?> ...

  5. 洛谷 题解 P2119【魔法阵】

    很好的一道数学推导题 45分做法 \(O(N^4)\) 暴力枚举四个材料 55分做法 从第一个约束条件可得到所有可行答案都是单调递增的,所以可以排序一遍,减少枚举量,可以拿到55分 100分做法 首先 ...

  6. String、StringBuilder、StringBuffer的爱恨情仇

    第三阶段 JAVA常见对象的学习 StringBuffer和StringBuilder类 (一) StringBuffer类的概述 (1) 基本概述 下文以StringBuffer为例 前面我们用字符 ...

  7. textarea文本域轻松实现高度自适应

    转载:http://www.xuanfengge.com/textarea-on-how-to-achieve-a-high-degree-of-adaptive.html 今天需要些一个回复评论的页 ...

  8. Linux中实用的命令

    1. 查看linux机器是32位还是64位的方法: 1.file  /sbin/init 或者file  /bin/ls           (注意命令中的空格) /sbin/init: ELF64- ...

  9. Payload 实现分离免杀

    众所周知,目前的杀毒软件的杀毒原理主要有三种方式,一种基于特征,一种基于行为,一种基于云查杀,其中云查杀的一些特点基本上也可以概括为特征码查杀,不管是哪一种杀毒软件,都会检查PE文件头,尤其是当后门程 ...

  10. 6-MySQL DBA笔记-查询优化

    第6章 查询优化 查询优化是研发人员比较关注也是疑问较多的领域.本章首先为读者介绍常用的优化策略.MySQL的优化器.连接机制,然后介绍各种语句的优化,在阅读本章之前,需要先对EXPLAIN命令,索引 ...