❶ 批處理如何壓縮文件成rar 並且解壓rar中指定文件
winrar假設安在 c:\program files\winrar\winrar.exe
bat:
cd "e:"
::改變當前路徑 ,被壓縮和生成的文件都在這個文件夾
c:\progra~1\winrar\winrar.exe a 壓縮文件名 a.txt
這樣 就可以把a.txt的 文件 壓縮到壓縮文件名.rar
如果壓縮全部txt格式
可以寫
c:\progra~1\winrar\winrar.exe a 壓縮文件名 *.txt
解壓rar中指定文件
c:\progra~1\winrar\winrar.exe e 壓縮文件名.rar a.txt
這樣可以把.rar的a.txt解壓到當前目錄
如果要解壓全部可以用
c:\progra~1\winrar\winrar.exe e 壓縮文件名.rar *.*
if errorlevel=0 then echo 成功
❷ 怎麼用批處理解壓壓縮包到當前文件夾中
是利用winrar自帶的一個命令行工具rar.exe來完成的
這個程序的命令行參數很豐富
直接在命令行輸入"c:\program files\winrar\rar.exe"(假如你的rar是裝在默認位置的話)
下面的批處理程序以一堆冒號為分界,分為三段
第一段,根據.rar文件的文件關聯找到rar的安裝目錄
這里用到了ftype命令
在命令行中輸入ftype就可以查看所有的文件關聯信息
這里我們只關注Winrar
所以輔助了一個通道命令|find找到winrar所在的行
然後調用了一個叫做:getrarpath的子程序
這個子程序在第三段做了定義
它將path變數暫時設成了winrar的安裝目錄
path變數有什麼用呢?當你輸入一個程序名,沒有路徑時,系統會在當前路徑和path指定的文件夾下尋找
這樣我們輸入rar.exe,系統就會自動在當前目錄和C:\program files\winrar\下尋找rar.exe。這么寫純粹是為了用起來方便
第二段只有一句話
用到了rar.exe的e參數,即解壓。可以指定路徑,如
rar e d:\bc\ed.rar d:\test\
不指定的話則解壓到當前目錄
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
setlocal
for /f "delims== tokens=1,*" %%a in ('ftype^|find /i "winrar="') do call:getrarpath %%b
if not exist "%path%\rar.exe" echo 找不到WinRAR&exit /b
::根據.rar的文件關聯查找rar所在的路徑
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rar e d:\bc\ed.rar
::解壓d:\bc\ed.rar到當前目錄。當前目錄指的是cmd的工作目錄
exit /b
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:getrarpath
::將工作路徑path設為winrar所在目錄
path %~dp1
exit /b