我想使用批处理文件从受密码保护的rar存档中自动提取文件。 我试过这段代码:
@echo off
UNRAR E -INUL -P ne2020 "%~dp0program.rar"
pause
但是向我显示的cmd窗口的输出告诉我unrar不是内部/外部命令。 如何解决这个问题?
答案 0 :(得分: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
答案 1 :(得分:0)
在我查看评论后,我找到了答案。 有两种方式。 第一:
将unrar.exe文件与批处理文件放在同一目录中
第二: 添加这一行:
cd C:\Program Files\WinRAR\
不要忘记不分开-p和密码。