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

 

利用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

 

 

【完】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM