需求背景
在进行测试数据扫描的时候发现数据扫描到程序日志的时候发现扫描的速度特变慢,发现文件夹下都是比较小的log文件,但是文件比较多,接近600文件,为了判断是文件数量影响扫描性能还是文件内容影响扫描性能,需要将600多文件进行合并,尽可能实现文件数量减少。
bat知识点
copy实现文件复制,需要了解dos命令的copy和xcopy的区别,copy是复制文件,xcopy可以实现复制目录和文件。copy可以直接将文件进行复制合并,将当前目录下的txt文档合并成10.txt
copy *.txt 10.txt
for循环
for循环,实现遍历当前目录下的所有文件夹
for的基本实现方法:
参考如下:
Windows bat脚本——for循环用法详解(一)_午夜阳光-CSDN博客_bat for循环
bat实现对当前目录下所有文件的复制,同时将已经复制完的空目录删除,复制到指定目录如下:
@echo off
for /d %%i in (*) do (
echo %%i>>d:\1\1.c
cd %%i
copy *.log d:\1\%%i.log>>d:\1\1.c
del *.log>>d:\1\1.c
cd ..
rd %%i >>d:\1\1.c
)
pause
这个是实现最基本的一级目录,还有实现多级目录文件的复制,目前自己测试已经实现