最近项目要用到定期批量将文件及文件夹下的文档打包,所以想到要写脚本来实现,然后做Windows定期任务调用。bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩。

调用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\

  上面实例是调用解压的核心命令,使用到项目中还需要结合上下文完善,比如判断winrar程序是否存在,目标压缩包zip是否存在等。

bat调用WinRAR解压实例二:

@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

利用WinRAR软件解压tar.gz文件

rem 因为test.bat文件放在C:\Users\Administrator\Desktop上,所以如果要进入7z.exe所在目录,需要先后退到根目录c盘
cd …/…/…
cd C:\Program Files\WinRAR
if exist “C:\Users\Administrator\Desktop\test\test.tar” del “C:\Users\Administrator\Desktop\test\test.tar”
start winrar x -y C:\Users\Administrator\Desktop\test.tar.gz C:\Users\Administrator\Desktop\test
rem start tar -zxvf gzip -d C:\Users\Administrator\Desktop\test.tar

说明:
1、del是删除文件的,rd是删除文件夹的,
rd只能删除空文件夹,如果要连同内部文件一起删要用rd /s 或者rd /s /q
2、rem为bat文件中的注释标志,即rem后的语句为注释内容

调用7zip来实现

  7zip也是目前为止使用非常普遍的一种压缩程序,它的压缩、解压缩效率高,而且没有广告,是免费工具。它不是Windows系统自带的,所以要调用它之前得确认是否安装了7zip,如果没有安装则自行下载安装即可。7zip下载地址:https://sparanoid.com/lab/7z/

bat调用7zip压缩实例:

@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"

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 :: 压缩
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

用7z来解压.tar.gz

7 zip软件可以实现文件的压缩和解压缩,如果使用7z.exe对tar.gz文件进行解压缩,需要经过两次解压,第一次解压成tar文件,再解压一次生成源文件,例如test.tar.gz解压一次生成test.tar。再次解压生成test

【完】

bat脚本(批处理程序)调用WinRAR及7zip压缩和解压缩的更多相关文章

  1. C# - WinFrm应用程序调用SharpZipLib实现文件的压缩和解压缩

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序调用SharpZipLib,实现文件的简单压缩和解压缩功能. SharpZipLib 开源地址戳这里. 准备工作 搭建WinFrm前台界面 添 ...

  2. 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期

    [源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...

  3. C#利用WinRAR实现压缩和解压缩

    using System; using Microsoft.Win32; using System.Diagnostics; using System.IO; namespace MSCL { /// ...

  4. 批处理命令调用WINRAR对文件进行压缩

    命令: winrar a 参数  压缩后的文件 压缩源文件 如压缩apk文件,代码如下 echo apk文件不能直接下载,所以压缩apk成rar来下载 d: cd D:\Program Files\W ...

  5. bat脚本批处理打war打包

    @echo =========================================== @echo 描述:打包脚本 @echo 作者:霍建国 @echo 日期:2018-03-13 @ec ...

  6. C# 使用WinRar命令压缩和解压缩

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  7. C# 7-zip 压缩和解压缩

    using System; using System.Collections.Generic; using System.Text; using SevenZip; using System.IO; ...

  8. 在window下, Java调用执行bat脚本

    参考博客: https://www.cnblogs.com/jing1617/p/6430141.html 最近一段时间用到了Java去执行window下的bat脚本, 这里简单记录一下: 我这里是先 ...

  9. bat脚本知识总结

    1常用基本命令 1.1 @ 它的作用是让执行窗口中不显示它后面这一行的命令本身 1.2 echo 它其实是一个开关命令,就是说它只有两种状态:打开和关闭.于是就有了echo on 和echo off两 ...

  10. windows bat脚本编写

    windows批处理 (cmd/bat) 编程详解 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码 ...

随机推荐

  1. Go语言:未指定类型的常量(untyped int constant)和大整数的关系

    运行下面的代码: 点击查看代码 package main import "fmt" const ( Big = 1 << 100 ) func needFloat(x ...

  2. 管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge 和 anaconda 的区别

    管理 Python 环境和依赖关系的工具 venv.virtualenv.pipenv .poetry . miniforge 和 anaconda 的区别 venv.virtualenv.pipen ...

  3. Air780E篇:采集温湿度传感器数据,并网页查看

    ​ 今天我们学习合宙低功耗4G模组Air780E篇:采集温湿度传感器数据并实现网页查看,以下进入正文. 一.硬件装备 1.1 硬件连接 使用跳线帽将IO_SEL连接3.3V,给引脚供3.3V的电.dh ...

  4. commons.dbutils1.2介绍及使用

    一.结构介绍 高层结构图: wrappers包: handlers包(部分): 二.功能介绍 commons.dbutils是一个对JDBC操作进行封装的类集,其有如下几个优点: (1)没有可能的资源 ...

  5. Elasticsearch之权限验证(Basic)

    目前使用的Es版本为7.5版本, 在7.X版本中已经可以免费的使用x-pack进行用户验证了 1. 修改elasticsearch主节点配置文件: action.destructive_require ...

  6. web移动端基础

    1.像素密度 PPI 说到屏幕就离不开2个因素,屏幕大小和屏幕分辨率. PPI是Pixels Per Inch缩写,pixels per inch所表示的是每英寸所拥有的像素(pixel)数目. PP ...

  7. Postgresql——postgis安装

    PostGIS安装 PostGIS 是一个开源数据库拓展,它为 PostgreSQL 数据库增加了对地理空间数据的支持.PostGIS 使得空间数据的存储.查询和分析变得简单高效. PostGIS 是 ...

  8. Shape文件格式

    Shape文件格式 一个ESRI的shapefile数据包含一个主文件(.shp),一个索引文件(.shx)和一个dBASE(.dbf)表.主文件是直接访问的,变长记录的文件,每一条记录都描述一个形状 ...

  9. DA14531芯片固件逆向系列(4)- L2CAP及ATT层收包再分析

    文章首发地址 https://xz.aliyun.com/t/9199 前言 上一篇文件分析了DA14531从收包中断开始一直到L2CAP层的数据包处理过程,最近又抽了一点时间将L2CAP层和ATT层 ...

  10. 鸿蒙NEXT开发案例:经纬度距离计算

    [引言] 在鸿蒙NEXT平台上,我们可以轻松地开发出一个经纬度距离计算器,帮助用户快速计算两点之间的距离.本文将详细介绍如何在鸿蒙NEXT中实现这一功能,通过简单的用户界面和高效的计算逻辑,为用户提供 ...