本文记录win10下压缩、解压文件的批处理命令,涉及到.bat文件的编写。bat文件为批处理程序。
通过本文,基本掌握:
1,makecab压缩命令
2,exppand解压命令
3,bat中时间格式化方法(生成压缩的文件加上时间后缀)
单个文件
对于单个文件,现有testfile.txt文件,欲将其压缩后再解压:
压缩命令
编写zip.bat文件,内容如下:
makecab testfile.txt zipAfile.zip
解压命令
编写unzip.bat文件,内容如下:
expand zipAfile.zip upzip_testfile.txt
多个文件
压缩多个文件稍微有点麻烦,首先要将待压缩的文件存储到文本文件中,然后调用压缩命令读取该文本文件并找到待压缩文件进行压缩。
输出当前文件夹下面的文件名到list.txt
for %i in (*) do echo %i>>list.txt
以上的输出为局部路径,生成list.txt效果如下:
test1.txt
test2.txt
如果加上路径前缀
for /r %i in (*) do echo %i>>list.txt
输出为
C:\Users\Administrator\Documents\My Games\autosave\testfolder\test1.txt
C:\Users\Administrator\Documents\My Games\autosave\testfolder\test2.txt
然后是压缩命令
zip.dat
makecab /f list.txt /d diskdirectorytemplate=. /d cabinetnametemplate=test.zip
以上代码与list.txt在同一个文件夹下 ,然后在该文件夹下生产test.zip文件
格式化时间
时间格式化是常见操作,为防止命名重复,用它可以对程序生成的文件进行命名。先记录几个基本的操作:
%date%命令
该命令主要操作日期
echo %date%
结果为
2021/08/15 周日
时间切片操作
echo %date:~0,4%
结果为
2021
代码
echo 年份 %date:~0,4% %date:~-3%
结果为
年份 2021 周日
%time%命令
和上面差不多:
echo %time%
效果
11:04:17.39
切片操作规则也和上面一样。有了这些就可以对我们生产的文件按照时间进行命名了。
::程序说明:将该bat脚本位于待压缩文件夹内(该文件夹内不包含文件夹)
::此时将文件压缩并存储到上一个目录下
@echo on
set dateis=%date:~0,4%%date:~5,2%%date:~8,2%
set timeis=%time:~,2%
:: 注意空格问题!!!!ff=
:: dateis is like 20210815
set filename=%dateis%-H%timeis%.zip
:: 字符串拼接
echo %filename%
makecab /f list.txt /d diskdirectorytemplate=.. /d cabinetnametemplate=%filename%
2021-08-15 12:21
阅读原文