bat腳本(批處理程序)調用WinRAR及7zip壓縮和解壓縮

最近項目要用到定期批量將文件及文件夾下的文檔打包,所以想到要寫腳本來實現,然後做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

 

調用7zip來實現

  7zip也是目前爲止使用非常普遍的一種壓縮程序,它的壓縮、解壓縮效率高,而且沒有廣告,是免費工具。它不是Windows系統自帶的,所以要調用它之前得確認是否安裝了7zip,如果沒有安裝則自行下載安裝即可。7zip下載地址:https://sparanoid.com/lab/7z/

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 

 

【完】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章