@echo off
set nowDate=%date:~0,4%%date:~5,2%%date:~8,2%
set fromPath=D:\copy\
set endPath=E:\temp\parse\3HourRefine\
for /f %%a in ('dir %fromPath%t639%nowDate%.txt /b/a-d/a-h/a-s/o-d/tc') do (
xcopy "%fromPath%%%a" "%endPath%" /k /y /c
)&goto end
:end
&exit
代码说明:
echo off 关闭在cmd窗口的语句输出
set nowDate 设置变量,获取变量的的方法:%nowDate%
set nowDate = %date:~0,4%%date:~5,2%%date:~8,2%获取当前系统的日期,日期格式:yyyyyMMdd
set fromPath=D:\copy\ 设置复制文件的目录
set endpath =E:\temp\parse\3HourRefine\ 设置复制文件的存放位置
/f for循环的参数,可以自行百度, %%a 声明变量a,每一次循环,把for循环获取的内容,复制给a
in() 设置循环的内容
do() 获取变量后需要进行的操作、
dir 遍历获取文件的批处理,参数说明: dir [drive:][path][filename] [...] [/p] [/w] [/d] [/a[:]attributes][/o[:]sortorder] [/t[:]timefield] [/s] [/b] [/l] [/n] [/x] [/c]
具体参数说明:
drive 盘符, path 路径,fileName 文件名,在文件名中可以通过*,?进行文件名的匹配 ,其他的参数,可以参考下面的参考博客
部分参数说明:/b:列出每个目录名或文件名,每行一个(包含文件扩展名),注意只显示文件名,其他的都不显示
/a-d:/a 显示所有的文件,-d 只是文件,/a-d 显示说有的只是文件的文件
/a-h:-h 非隐藏的文件,/a-h 不是隐藏文件的文件
/a-s:-s 系统文件以为的文件,/a-s 不是系统文件的文件
/od:/o 文件的排序顺序,d 按日期和时间,最早的优先,/od 按照文件的时间排序,最早的在最前面
/tc:/t 控制心事或用户排序的时间字段,c 创建,/tc 按照文件的创建时间进行排序
xcopy "%fromPath%%%a" "%endPath%" /k /y /c 进行文件复制
"%fromPath%%%a" 需要复制的文件
"%endPath%" 文件复制的目的文件目录
/k:复制属性。一般的 Xcop