Windows Bat脚本之压缩、解压文件,时间字符串处理命令

本文记录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

阅读原文

简介:开源CAE技术爱好者,编程爱好者,计算力学,欢迎志同道合的朋友一起交流。欢迎关注微信公众号:挨踢的土木佬
(0)
打赏 喜欢就点个赞支持下吧 喜欢就点个赞支持下吧

声明:本文来自“挨踢的土木佬”,分享链接:https://www.zyxiao.com/p/302663    侵权投诉

网站客服
网站客服
内容投稿 侵权处理
分享本页
返回顶部