windows文件夹同步

python脚本,支持时间戳

#! /usr/bin/env python  
# -*- coding: utf-8 -*-  
import os  
import time  

#rsyncDir.py
#源文件夹
sourceDir = r"D:\Working\project_ms\msclient\fla\Bin\TD" 
#目标文件夹
targetDir = r"D:\Working\project_ms\publish\web\src\preview\td.123u.com\wwwroot" 
#截断时间戳(只更新该事件后面的文件)
timeStamp = 1471933633
#是否递归文件夹
iIsRecursion = 1
#是否显示信息
iIsShowInfo = 0
copyFileCounts = 0 
   
def copyFiles(sourceDir, targetDir):  
    global copyFileCounts  
    #print u"%s 当前处理文件夹%s已处理%s 个文件" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), sourceDir,copyFileCounts)  
    for f in os.listdir(sourceDir):  
        sourceF = os.path.join(sourceDir, f)  
        targetF = os.path.join(targetDir, f)  
                 
        if os.path.isfile(sourceF):  
            copyFileCounts += 1 
            
            #print "sourceF=" + os.path.basename(sourceF)
            #print os.path.getmtime(sourceF)
            #print os.path.getmtime(sourceF) > timeStamp
            #raw_input()
            #文件时间戳判断
            if ( os.path.getmtime(sourceF) > timeStamp ):  
                #创建目录  
                if not os.path.exists(targetDir):  
                    os.makedirs(targetDir)  
                #2进制文件  
                open(targetF, "wb").write(open(sourceF, "rb").read())  
                print time.ctime(os.path.getmtime(targetF)) + "\t" + os.path.basename(targetF)
            #else:  
            #    print u"%s %s 已存在,不重复复制" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), targetF)  
        
        if ((iIsRecursion > 0) and os.path.isdir(sourceF)):  
            copyFiles(sourceF, targetF)  
           
if __name__ == "__main__":  
    try:  
        import psyco  
        psyco.profile()  
    except ImportError:  
        pass 
    print "sourceDir = " + sourceDir  
    print "targetDir = " + targetDir  
    copyFiles(sourceDir,targetDir)
    if ((iIsShowInfo > 0)):
        raw_input()


bat脚本 支持某一天时间

::rsyncDir.bat
::源文件夹
set sourceDir=D:\Working\project_ms\msclient\fla\Bin\TD
::目标文件夹
set targetDir=D:\Working\project_ms\publish\web\src\preview\td.123u.com\wwwroot
::截断时间(只更新该事件后面的文件)
set timeStamp=08-24-2016
::是否递归文件夹
set iIsRecursion=1
::是否显示信息
set iIsShowInfo=0

@echo start
echo sourceDir = %sourceDir%
echo targetDir = %targetDir%
@echo off
if %iIsRecursion% GTR 0 XCOPY %sourceDir% %targetDir% /y/s/D:%timeStamp%
if %iIsRecursion% LEQ 0 XCOPY %sourceDir% %targetDir% /y/D:%timeStamp%
if %iIsShowInfo% GTR 0 pause


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值