2017-09-08 131 views
1

我想使用批處理文件從密碼保護的rar檔案中自動提取文件。 我試過這段代碼:unrar批量密碼保護檔案

@echo off 
UNRAR E -INUL -P ne2020 "%~dp0program.rar" 
pause 

但在CMD窗口展示給我告訴我的unrar是不是內部/外部命令的輸出。 如何解決這個問題?

+1

嘗試爲其提供UNRAR.exe的完整路徑。 – Dijkgraaf

+0

你有沒有安裝Winrar? – Squashman

+0

另一件事情,然後全路徑;密碼應該是這樣的'-pne2020'沒有空間 – Hackoo

回答

0

你可以給這個批處理文件一試:

@echo off 
Title Unzip Winrar Files in command line 
color 0A 
Mode con cols=75 lines=10 
Set "file=%~dp0program.rar" 
set "RAR_Password=ne2020" 
Set Log=%~n0_UnzipLog.txt 
for %%i in ("%file%") do (set "DEST=%~dp0%%~ni") 
set strProgramFiles=%ProgramFiles% 
if exist "%ProgramFiles(x86)%" set strProgramFiles=%ProgramFiles(x86)% 
Set Unrar="%strProgramFiles%\WinRAR\UnRar.exe" 
If not exist "%DEST%" MD "%DEST%" 
If Exist %Unrar% (Goto :Unrar) else (Goto :Fail) 

:Unrar 
%UNRAR% E -inul -y -p%RAR_Password% "%file%" "%DEST%">nul 2>&1 
IF "%ERRORLEVEL%" EQU "0" (GOTO Succes) Else (Goto Fail) 

:Succes 
Echo(
Echo All Files are unzipped succesfuly ! in "%DEST%" 
Echo All Files are unzipped succesfuly ! in "%DEST%" > "%Log%" 
Start "" /MAX "%Log%" 
Timeout /T 3 /nobreak>nul 
Exit /b 

:Fail 
Color 0C 
Echo(
echo There was an error ! 
echo There was an error ! > "%Log%" 
Start /MAX "" "%Log% 
Timeout /T 3 /nobreak>nul 
+0

它告訴我有一個錯誤 –

+0

@man_s_our你在這段代碼中完全修改了什麼?你檢查你的密碼是否正確?並要提取的文件呢? – Hackoo

+0

我沒有修改任何東西 –

0

後我檢查,我發現答案的評論。 有2種方法。 1:

把unrar.exe文件在同一目錄下的批處理文件

第二: 加入這一行:

cd C:\Program Files\WinRAR\ 

沒有忘記給不給-p和密碼之間分開。