用執行個體來說明問題。
我的WinRAR路徑:
C:/Program Files/WinRAR/WinRAR.exe
用法: rar <命令> -<開關 1> -<開關 N> <壓縮檔> <檔案...> <@列表檔案...> <解壓路徑/> <命令>
[命令列參數查看 ]
操作步驟:
1.將C:/Program Files/WinRAR下的Rar.exe拷貝到%SystemRoot%/system32下,這樣你就不必設定rar的環境變數,而能直接再cmd 命令提示字元下使用rar命令 .
(關 於環境變數: cmd 的命令不能用了怎麼辦 )
2.在C盤建立duxing.txt 檔案和dodo 檔案夾,用來做個實驗.
3.運行中輸入cmd開啟命令提示字元.
4.然後:
壓縮檔:
C:/Documents and Settings/Administrator>cd/
C:/>rar a duxing.rar duxing.txt
RAR 3.62 著作權 (C) 1993-2006 Alexander Roshal 3 十二月 2006
共用版本 輸入 RAR -? 獲得協助
評估版本,請註冊
正在建立 壓縮檔 duxing.rar
正在添加 duxing.txt 完成
完成
壓縮檔夾:
C:/>rar a dodo.rar dodo
RAR 3.62 著作權 (C) 1993-2006 Alexander Roshal 3 十二月 2006
共用版本 輸入 RAR -? 獲得協助
評估版本,請註冊
正在建立 壓縮檔 dodo.rar
正在添加 dodo 完成
完成
WinRAR如何批量壓縮檔夾
1.拖放檔案壓縮之:
建立個bat,內容為:
rar a %1.rar %1
然後依次將要壓縮的檔案或檔案夾拖放到該bat表徵圖上,即可壓縮了。
能省點兒事兒吧。
------Update--2008.11.18--篤行天下
在 Dos貼吧 裡求教歸來~~
@echo off
rem --設定指定路徑為d:/test ,使用者可自訂
set "pt=d:/test "
rem --擷取指定路徑下所有檔案和檔案夾的名稱
for /f %%i in ('dir /b d:/test' ) do (
rem --這裡做為顯示的命令參數
rar a d:/test/ %%~ni.rar d:/test/ %%i
)
echo 完成。
ping -n 3 127.0.0.1>nul
對上面批處理的說明:
1. rem後跟的是注釋;
2. set "pt=d:/test" 設定的是路徑,test裡每一個檔案和檔案夾都會被單獨壓縮成一個rar包;
3. for /f %%i in ('dir /s/b d:/test') 這句就是我在Dos貼吧所求得的,表示獲得d:/test路徑下的檔案和檔案夾名稱作為下一步的參數
4. rar a d:/test/ %%~ni .rar %%i 中d:/test/ 設定的是壓縮包存放路 徑%%~ni 表示壓縮包的名稱(不含原來檔案的副檔名例如原來檔案為duxing.txt壓縮後為 duxing.rar,這種情況下需要注意,若同目錄中有duxing.java,也會被添加到duxing.rar包中;若要包含原檔案名稱,則將此部分 改為%%i , 壓縮後,名稱為duxing.txt.rar)。
5. 最後一行的 ping -n 3 127.0.0.1>nul 是3秒後結束程式,關閉視窗
6. 小提示:建立的這個bat檔案若放到壓縮源的路徑裡,自身也會被壓縮,所以留意一下,不需要時可以刪除之.若bat檔案放到要壓縮源的路徑之外,就不用考 慮此問題.
7.一個不考慮環境變數的寫法,即命令中顯式指出rar.exe路 徑:
(我的RAR.exe所在路徑: C:/Program Files/WinRAR/RAR.exe)
@echo off
rem --設定指定路徑為d:/test ,使用者可自訂
set "pt=d:/test "
rem --擷取指定路徑下所有檔案和檔案夾的名稱
for /f %%i in ('dir /b d:/test' ) do (
rem --這裡做為顯示的命令參數
"C:/Program Files/WinRAR/rar.exe" a d:/test/ %%~ni.rar d:/test/ %%i
)
echo 完成。
ping -n 3 127.0.0.1>nul
8.缺陷 :僅能處理某一檔案夾下的內容; 所要壓縮的對象名稱中不能含有空格。
講解了原理,您也能自行修改這段代碼了,建議在正式使用前,請建立個檔案夾,測試一下,考慮一下各種情況下會不會 有意想不到的效果。
最後祝您運行成功,感謝Dos貼吧的那位不知名的恩師~~
rem --命令更新18:42 2008-11-25 支援檔案和檔案名稱中含空格
rem --篤行天下 http://hi.baidu.com/duxing
@echo off
rem --設定指定路徑為d:/test ,使用者可自訂
set "pt=d:/test"
rem --擷取指定路徑下所有檔案和檔案夾的名稱
for /f "tokens=*" %%i in ('dir /b %pt%') do (
rem --這裡做為顯示的命令參數
rar a "%pt%/%%i" "%pt%/%%i"
)
echo 完成。
pause
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
解壓在檔案的命令列也差不多操作,先把winrar安裝目錄下的unrar.exe拷貝到C:/windows/system32下
用法: unrar <命令> -<開關 1> -<開關 N> <壓縮檔> <檔案...>
<@列表檔案...> <解壓路徑/>
<注釋>
e 解壓壓縮檔到目前的目錄
l[t,b] 列出壓縮檔[技術資訊,簡潔]
p 列印檔案到標準輸出裝置
t 測試壓縮檔
v[t,b] 詳細列出壓縮檔[技術資訊,簡潔]
x 用絕對路徑解壓檔案
<開關>
- 停止掃描
ac 壓縮或解壓後清除存檔屬性
ad 添加壓縮檔名到目標路徑
ai 忽略檔案屬性
ap<路徑> 添加路徑到壓縮檔中
av- 禁用使用者身份校正
c- 禁用注釋顯示
cfg- 禁用讀取配置
cl 名稱轉換為小寫
cu 名稱轉換為大寫
dh 開啟共用檔案
ep 從名稱中排除路徑
ep3 擴充路徑為包含盤符的完全路徑
f 重新整理檔案
id[c,d,p,q] 禁止資訊顯示
ierr 發送所有訊息到標準錯誤裝置
inul 禁用所有訊息
ioff 完成一個操作後關閉 PC 電源
kb 保留損壞的已解壓檔案
n<檔案> 僅包括指定檔案
n@ 從標準輸入裝置讀取要包含的檔案名稱
n@<列表> 在指定列表檔案包括檔案
o[+|-] 設定覆蓋模式
oc 設定 NTFS 壓縮屬性
or 自動重新命名檔案
ow 儲存或恢複檔案所有權和組
[密碼] 設定密碼
p- 不詢問密碼
r 包含子目錄
ri<P>[:<S>] 設定優先權 (0-預設,1-最小..15-最大) 和休眠時間(毫秒)
sl<大小> 處理小於指定大小的檔案
sm<大小> 處理大於指定大小的檔案
ta<日期> 添加日期 <日期> 後修改的檔案,日期格式 YYYYMMDDHHMMSS
tb<日期> 添加日期 <日期> 前修改的檔案,日期格式 YYYYMMDDHHMMSS
tn<時間> 添加 <時間> 以後的檔案
to<時間> 添加 <時間> 以前的檔案
ts<m,c,a>[N] 儲存或恢複檔案時間(修改,建立,訪問)
u 更新檔案
v 列出所有卷
ver[n] 檔案版本控制
vp 每卷之前暫停
x<檔案> 排除指定的檔案
x@ 從標準輸入裝置讀取要排除的檔案名
x@<列表> 排除指定列表檔案中的檔案
y 假設對全部詢問都回答是
舉例說明:(將一個檔案解壓縮到目前的目錄下)d:/>unrar x 123.rar