windowsbat批处理复制文件操作
windowsbat批处理复制⽂件操作
windows bat批处理复制⽂件操作(提取同类型⽂件到另⼀个⽂件夹)
0.1492019.03.30 10:47:55字数 351阅读 1428
同学让我帮忙处理数据,但是有365天的数据也就是365个⽂件夹,整体⽂件好⼏⼗个G,但是每个⽂件夹中有⽤的⽂件只有⼏个且很⼩,于是就准备写⼀个脚本⽂件对其进⾏批处理,反正也没学过,就搜集资料搞吧,搞好了详细写给⼤家看嘛。
同学的⽂件分布是这样的:
其中有⽤的⽂件是这样的,且每个⽂件夹中都类似:
明确了需求,直接把最后源码先看,再具体⼀⾏⾏讲:
@echo off
mkdir result
for /f  %%i in ('"dir /ad/b/on *.*"') do (
echo  %%i
xcopy %%i\met_*.* result /s /e /d /y
)
pause
下⾯是讲解,对应每⾏
(1)@为不输出当前⾏,echo off是取消显⽰命令
(2)mkdir是创建⽂件夹
(3)for循环中,脚本语⾔使⽤%%variable做变量,要加两个百分号,变量名⼤⼩写区分,/f的话就是遍历整体⾥⾯的内容,若不加则⽆法遍历file,后⾯的dir是当前路径,加参数(只列出当前⽤到的),也就是只按顺序输出⽂件夹名:
/A          显⽰具有指定属性的⽂件。
attributes  D  ⽬录                R  只读⽂件
H  隐藏⽂件            A  准备存档的⽂件
S  系统⽂件            -  表⽰“否”的前缀
/B          使⽤空格式(没有标题信息或摘要)。
/O          ⽤分类顺序列出⽂件。
无法复制文件sortorder    N  按名称(字母顺序)    S  按⼤⼩(从⼩到⼤)
E  按扩展名(字母顺序)  D  按⽇期/时间(从先到后)
G  组⽬录优先          -  颠倒顺序的前缀
(4)输出⼀下⽂件夹名
(5)将⽂件夹中符合met_.格式的⽂件复制到result⽂件夹中,*是通配符,可以代表任何字符。后⾯的参数意义为:
/s 复制⾮空的⽬录和⼦⽬录。如果省略“/s”,则“xcopy”将在单个⽬录中⼯作。
/e 复制所有⼦⽬录,包括空⽬录。将“/e”与“/s”和“/t”命令⾏选项⼀起使⽤。
/y 禁⽌提⽰确认要覆盖已存在的⽬标⽂件。
/d [:MM-DD-YYYY] 只复制那些在指定⽇期或指定⽇期之后更改过的源⽂件。如果不包括“MM-DD-YYYY”值,“xcopy”会复制⽐现有“Destination”⽂件新的所有“Source”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。