一、采用脚本自动压缩和解压
本文来源:https://www.cnblogs.com/xiongzaiqiren/p/12658210.html
bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩
最近项目要用到定期批量将文件及文件夹下的文档打包,所以想到要写脚本来实现,然后做Windows定期任务调用。bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩。
1、调用WinRAR来实现
A、bat调用WinRAR解压实例一
因为WinRAR是Windows系统经典的压缩及解压缩程序,也是目前为止使用非常普遍。
它不是Windows系统自带的,所以要调用它之前得确认是否安装了WinRAR,
如果没有安装则自行下载安装即可。WinRAR下载地址:http://www.winrar.com.cn/
一般来说,64位安装在C:\Program Files\目录下,32位安装
在C:\Program Files (x86)\目录下。这个知识点很关键,下面要用到.
bat调用WinRAR解压实例一:
::解压程序WinRAR.exe所在目录 32位%ProgramFiles(x86)% 或64位 %ProgramFiles%
set WinRarDir=%ProgramFiles%\WinRAR
:: x即解压。-y是说如果遇到提示说是否覆盖,选择yes
start /wait "" "%WinRarDir%\WinRAR.exe" x -l D:\Software\Redis-x64-3.2.100.zip C:\mySoftWare\
B、bat调用WinRAR解压实例二
上面实例是调用解压的核心命令,使用到项目中还需要结合上下文完善,
比如判断winrar程序是否存在,目标压缩包zip是否存在等。
@echo off
setlocal enabledelayedexpansion
echo please make sure you are admin!
echo 解压并部署redis,notepad及相关软件,请确保相关压缩包在当前目录。
echo 执行此脚本前,请确认已经安装解压缩程序WinRAR.exe
:::::::::: 配置参数 ::::::::::
::解压程序WinRAR.exe所在目录 32位%ProgramFiles(x86)% 或64位 %ProgramFiles%
set WinRarDir=%ProgramFiles%\WinRAR
REM 基础文件
set redis=Redis-x64-3.2.100.zip
set notepad=npp.7.5.6.Installer.exe
REM 部署盘符
set Pan=C:\
:::::::::: 执行脚本前,请配置以上参数。::::::::::
echo ------------------------------
set curdir=%~dp0
cd /d %curdir%
echo 开始准备部署资源:
::检查基础文件
if exist %curdir%%redis% (echo 存在:%redis%) else (echo %redis%文件不存在 & pause&exit)
if exist %curdir%%notepad% (echo 存在:%notepad%) else (echo %notepad%文件不存在 & pause&exit)
echo ------------------------------
::创建部署目录
set deploydir=%Pan%mySoftWare
if exist %Pan% ( ^ if exist %deploydir% (echo 存在:%deploydir%) else (mkdir %deploydir% & echo 已创建:%deploydir%)
) else ( ^echo !! echo !!执行失败,当前系统不存在%Pan%盘 echo !! pause & exit)
echo ------------------------------
::解压并放到部署目录 32位%ProgramFiles(x86)% 或64位 %ProgramFiles%
if exist "%WinRarDir%\WinRAR.exe" (echo 已找到:"%WinRarDir%\WinRAR.exe") else (echo 找不到:"%WinRarDir%\WinRAR.exe"请检查。 & pause&exit)
echo 开始解压部署资源:
::替换掉.zip即移除后缀名形成解压到文件夹名
set "redisdir=%redis:.zip=%"
:: x即解压。-y是说如果遇到提示说是否覆盖,选择yes
start /wait "" "%WinRarDir%\WinRAR.exe" x -l %curdir%%redis% %deploydir%\%redisdir%\
copy "%curdir%script\Redis*" "%deploydir%\%redisdir%\"
echo 部署资源已准备好,开始安装辅助软件:
::运行npp.7.5.6.Installer.exe(安装notepad++)
start /wait "" "%curdir%%notepad%" /S
echo 已安装%notepad%
echo 部署资源已准备好,你可以开始部署了(请注意修改redis,preview等相关应用配置文件)。
echo ------------------------------
echo 检查服务是否存在:
::检查服务是否存在
set redisServerName=Redis
sc query "%redisServerName%" >nul && (echo 服务已存在:%redisServerName%) || (echo 请安装部署:%redisServerName%)
echo 检查服务已完成。
echo ------------------------------
echo 部署资源已准备好,请开始部署吧。
::部署完成,打开windows服务管理器
start "" "services.msc" -refresh
pause
2、调用 7zip 来实现
A、bat调用7zip压缩实例
7zip也是目前为止使用非常普遍的一种压缩程序,它的压缩、解压缩效率高,
而且没有广告,是免费工具。它不是Windows系统自带的,所以要调用它之前得确认是否安装了7zip,
如果没有安装则自行下载安装即可。7zip下载地址:https://sparanoid.com/lab/7z/
@echo 定位到待压缩的文件夹
cd F:\数据压缩测试\0101C
@echo 使用7z先将1这个目录下的所有文件压缩为tar格式
"C:\Program Files\7-Zip\7z.exe" a -ttar F:\数据压缩测试\510101C.tar 1\*
@echo 将压缩后的tar格式再压缩为gzip格式,最终得到需要的tar.gz格式
"C:\Program Files\7-Zip\7z.exe" a -tgzip F:\数据压缩测试\2016_1_510101C.tar.gz F:\数据压缩测试\510101C.tar
@删除中间过程生成的文件
del "F:\数据压缩测试\510101C.tar"
B、bat调用7zip解压实例一
@echo off
setlocal enabledelayedexpansion
echo please make sure you are admin!
echo 执行此脚本前,请确认已经安装解压缩程序7-Zip
:::::::::: 配置参数 ::::::::::
::解压程序WinRAR.exe所在目录 32位%ProgramFiles(x86)% 或64位 %ProgramFiles%
set 7ZipDir=%ProgramFiles%\7-Zip
REM 当前目录下用来测试的压缩包
set plegodemo=plegodemo.zip
:: 解压
set curdir=%~dp0
set deploydir=E:\mytest
set "plegodemodir=!plegodemo:.zip=!"
:: C:\01_MyApp\7-Zip\7z.exe x newPack.zip -oc:\Doc -aoa
start /wait "" "!7ZipDir!\7z.exe" x !curdir!!plegodemo! -o!deploydir!\!plegodemodir!\ -aoa
@rem 参考此命令,自己写了一个成功的用例,解压结果符合预期,十分完美:
"c:\path\7-zip\7z.exe" x d:\path\xx.zip -o"d:\xxx\path\\" -aoa
@rem 根据实践结果,此命令对 .7z 同样适用
:: 压缩
set "name=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
:: C:\01_MyApp\7-Zip\7z.exe a -t7z newPack.7z "F:\14_newWork\7z\testDoc\*" -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on
start /wait "" "!7ZipDir!\7z.exe" a -tzip !deploydir!\!plegodemodir!_%name%.zip "C:\inetpub\*" -r -mx=9
3、用7z来解压.tar.gz
zip软件可以实现文件的压缩和解压缩,
如果使用7z.exe对tar.gz文件进行解压缩,
需要经过两次解压,第一次解压成tar文件,
再解压一次生成源文件,
例如test.tar.gz解压一次生成test.tar。
再次解压生成test
测试editor.md的公式功能
$$ x={-b\pm \sqrt{b^2 – 4ac}\over 2a}$$
$$ x\href{why-equal.html}{=} y^2 + 1 $$
what does the red 'href' mean?