Board logo

标题: 怎样检测新文件,并拷贝? [打印本页]

作者: viviantian     时间: 2007-9-26 13:29    标题: 怎样检测新文件,并拷贝?

怎样检测文件夹中的所有新文件,并拷贝到另外一个文件夹目录下?
也就是说如果现在有目录 Folder1,包含文件1.bmp,2.bmp,3.bmp。现在我想在每天检查一次Folder1,如果有新的文件生成,比如增加了4.bmp,5.ico两个文件,我就要把4.bmp,5.ico拷贝到另外一个目录Folder2下面。
我是不是需要有一个文件来记录上一次检测的时间LastRun,然后和每个文件修改时间/创建时间进行比较,比LastRun晚的文件使用xcopy 进行拷贝呢?具体该怎么写呢? 小女子初来乍到,谢谢各位大侠关照
作者: viviantian     时间: 2007-9-26 13:43
更进一步:如果Folder2是网络上的另外一台主机上的目录,我如何能知道在拷贝文件时,Folder2所在磁盘是否已满,网络是否在中途出现连接错误?
作者: wudixin96     时间: 2007-9-26 13:44
可以先保存一个文件列表
然后再对比,把文件列表里没有的复制过去,然后再重新生成新的文件列表,即可
作者: lslcxlsl     时间: 2007-9-26 15:04
现学现卖下 你可以下个robocopy 这个比windows系统自带的xcopy功能要多还是免费的 然后写一个批处理   
  robocopy E:\Folder1 *.bmp d:\Folder2  /mir /log:c:\bmp.log  这个是同步命令把Folder1下的同步到Folder2下 如果Folder1下删除了几个bmp ,Folder2也会删除这样比纯拷贝要好点

如果是用xcopy 的话 批处理这样写就可以:
xcopy E:\Folder1 *.bmp d:\Folder2   /d:%date:~5,2%-%date:~8,2%-%date:~0,4% /S /y >>G:\temp\log%  (/d:%date:~5,2%-%date:~8,2%-%date:~0,4% 这个就是拷贝今天产生的文件 ,你可以用date /t 命令查下日期格式,如果是yyyy-mm-dd 用上面的参数就没问题)  这个在xp和2003上用过没啥问题

[ Last edited by lslcxlsl on 2007-9-26 at 10:13 PM ]
作者: terse     时间: 2007-9-27 10:51
replace Folder1\*.* Folder2 /a
作者: viviantian     时间: 2007-9-28 09:23
replace Folder1\*.* Folder2 /a 可以将新的文件拷贝到Folder2中。
如果要检测Folder1中的新文件夹呢?
作者: viviantian     时间: 2007-9-28 09:36
使用robocopy E:\Folder1 *.* d:\Folder2  /mir /log:c:\bmp.log  
可以检测到修改,删除,增加的文件和文件夹,并进行拷贝。
因为我要在网络中传输,所以使用robocopy,而不使用xcopy,因为robocopy支持断点续传。谢谢各位大侠