标题: [文件操作] 批处理怎样自动跟新COPY文件? [打印本页]
作者: august 时间: 2018-12-3 16:30 标题: 批处理怎样自动跟新COPY文件?
场景是这样的:
1、每天服务器路径\\172.19.21.23\file,这里暂时称之为文件路劲A,可能会有文件跟新,跟新的文件一直在不会删除
一组文件7-8个(一个日期一天的数据,有时会多个X,格式为TXT格式),有时无跟新,有时会跟新14个或者32个文件,差不多7的倍数
文件名有规则如下,最后6位数字是日期:
F24598720200181127A
F24598720200181127B
F24598720200181127C
F24598720200181127D
F24598720200181127E
F24598720200181127F
F24598720200181127G
2、然后有一个服务器地址是\\172.19.18.221\updat,这里称之为文件路径B,每天上级会从这里抽取文件,被抽取的文件会删除(剪切)
3、所以每天上午需要人工从路径A这里COPY最新的文件到路径B,例如今天是12月3日,发现有文件181126A-G的7个文件,我就会COPY这个几个最新的文件到路径B服务器,做好记录(不然记不住)
需求是这样:
希望走一个BAT自动每天WINDOWS计划任务执行一次或者几次,把跟新的文件自动COPY过去,简单粗暴的方式是每天COPY最后50个文件,目标文件存在就覆盖,并且不报错。
好一点就是早上7点计算一下路劲A的文件个数,然后中午12点重新计算一下,发现文件数量有多,多了几个那就COPY几个。当然这是理想化了。
请教一下各位,有什么方法没有,在此先感谢
作者: hlzj88 时间: 2018-12-3 20:32
本帖最后由 hlzj88 于 2018-12-3 20:45 编辑
- @echo off&&setlocal enabledelayedexpansion
-
- set mm=
- set mm=%date:~2,2%%date:~5,2%%date:~8,2%
-
- rem 利用条件关系,使只有两个服务器都能成功登陆才有记录产生
- net user z: \\172.19.18.221\updat %密码% /user:%用户名%&&net user y: \\172.19.21.23\file %密码% /user:%用户名%&&echo %mm%>>z:\记录.txt
-
- md z:\%mm%
- xcopy y:\*%mm%* z:\%mm%\ /y/k/c
-
- for /f %%i in (a.txt) do (
- md z:\%%i
- xcopy y:\*%%i* z:\%%i\ /y/k/c
- if exist z:\%%i\*%%i* echo %mm%>a.txt
- )
-
- rem 上面9,10句只拷贝今天的文件
- rem 上面for使今天运行只拷贝a.txt里记录的日期数字的文件。即今天拷贝昨天的。
- pause
- exit
复制代码
没有环境测试,大意如此,楼主斟酌调试使用。
作者: hlzj88 时间: 2018-12-3 20:39
本帖最后由 hlzj88 于 2018-12-3 20:45 编辑
忘说了 y是你的a,z是你的b。
用哪个复制删除另外的复制。- net user y: /del
- net user z: /del
复制代码
上面代码加入到 17位置
作者: august 时间: 2018-12-4 08:47
感谢指教,我先学习消化一下。
作者: flashercs 时间: 2018-12-4 10:05
拷贝一天内更新的文件,每60分钟检查一次,日志记录到D:\copy.Log ;计划任务开机运行,不用退出.- robocopy.exe "\\172.19.21.23\file" "\\172.19.18.221\update" *.txt /MAXAGE:1 /MOT:60 /LOG+:"D:\copy.Log"
复制代码
作者: august 时间: 2018-12-12 10:18
回复 5# flashercs
谢谢,一会我试试看
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |