批处理文件命令来解锁受密码保护的档案

批处理文件命令来解锁受密码保护的档案

我正在尝试编写一个批处理文件来解压 .7z 文件...将它们提取到其原始文件夹。我遇到的问题是将密码添加到代码中。有人可以帮忙吗?

谢谢!

这是目前的代码...

@echo off

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.7z) DO (
            "C:\Program Files\7-zip\7z.exe" x "%%X"
        )
    popd
)

答案1

我会这样做 ..

我有点奇怪,我更喜欢在一个循环中减少几次代码量...这是可能的:

@echo off 

for /f tokens^=* %%i in ('2>nul %__AppDir__%where.exe /r "d:\your\folder" *.7z'
     )do "c:\program files\7-zip\7z.exe" x "%%~fi" -o"%%~dpi\" -p"YouRPassWord"

答案2

以下是我的做法。

我有点奇怪,因为我更喜欢使用基于函数的方法 call :<function_name>goto :EOF

这解决了需要 EnableDelayedExpansion(我不喜欢使用)的问题。每个人都有自己的想法……这个代码应该可以工作。

另外,删除 ECHO 语句!!在这里,您可以在实际运行之前测试此代码!;)

@echo off
for /d /r %%d in (*) do call :ProcessDirectory "%%d"
goto :EOF

:ProcessDirectory
pushd %1
::Make sure pushd success.. otherwise, return to loop to the next dir
if not ERRORLEVEL 0 goto :EOF

for %%f in ("*.7z") do echo "C:\Program Files\7-zip\7z.exe" x %%f -pTHEPASSWORD
popd
goto :EOF

相关内容