Java教程

Windows压缩指定文件并删除原文件内容bat脚本

本文主要是介绍Windows压缩指定文件并删除原文件内容bat脚本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

环境

E盘scan文件夹下有IT、HT、SCM、经管等部门文件夹,各部门文件夹下存放着各自的扫描文件(PDF)、表格等内容,因是临时存放,所以需设定定时删除任务
在这里插入图片描述

需求

结合windows任务计划,每天定时备份scan文件夹(以当前日期为备份文件名),并删除scan下所有文件(不删除scan下的文件夹,即保留IT、HR、SCAM、经管等文件夹)

实现

@echo off
set zip7=C:\Program Files\7-Zip\7z.exe
set Save=E:\scan-backup
set curdate=%date:~0,4%-%date:~5,2%-%date:~8,2%
set zipfile=E:\scan
"%zip7%" a -tzip "%Save%\%curdate%.zip" "%zipfile%" -mx=5 -xr!.svn
forfiles /p "%Save%" /m *.zip -d -7 /c "cmd /c del /f @path"
del /f/s/q/a E:\scan\*.*
echo

代码详解

指定7z压缩程序路径

set zip7=C:\Program Files\7-Zip\7z.exe

设置压缩包保存路径(不能有中文名)

set Save=E:\scan-backup

当天日期,备份文件名

set curdate=%date:~0,4%-%date:~5,2%-%date:~8,2%

设置要打包压缩的文件夹

set zipfile=E:\scan

调用备份命令, -xr!.svn过滤.svn文件夹

"%zip7%" a -tzip "%Save%\%curdate%.zip" "%zipfile%" -mx5 -xr!.svn 

删除超过7天的备份

forfiles /p "%Save%" /m *.zip -d -7 /c "cmd /c del /f @path"

删除E:\scan\下任何名字的任何类型文件

del /f/s/q/a E:\scan\*.*

a表示add命令,即新建一个压缩文件,该压缩文件存放在当前目录下
-mx表示压缩等级5-9,0表示不压缩
-xr!.svn 表示排除svn目录,7zip排除目录的路径里不能用当前目录 . ,如 -xr!./.svn,会过滤失败, .svn 还会压缩进去

友情提示

为避免造成不必要的困扰,批处理文件最好免去中文注释,最终效果展示如下:在这里插入图片描述

这篇关于Windows压缩指定文件并删除原文件内容bat脚本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!