用執行個體來說明問題。
我的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<檔案> 僅包括指定檔案
[email protected] 從标準輸入裝置讀取要包括的檔案名稱
[email protected]<清單> 在指定清單檔案包括檔案
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<檔案> 排除指定的檔案
[email protected] 從标準輸入裝置讀取要排除的檔案名
[email protected]<清單> 排除指定清單檔案中的檔案
y 假設對全部詢問都回答是
舉例說明:(将一個檔案解壓縮到目前目錄下)d:/>unrar x 123.rar