递归 7Zip 解压并重命名子目录

递归 7Zip 解压并重命名子目录

我有一个根目录,其中有许多不同的子目录,其中包含 .zip 文件(见下面的示例)。我需要批处理/.cmd/etc 来解压其子目录中的 zip 文件,并将解压的文件(.tif)重命名为与 zip 文件相同的名称。我研究了一下,找到了以下代码,但这只有在放在子目录中时才有效。不是父文件夹。如何使此代码在所有子目录中工作,如所述?

示例文件结构

C:\This\Is\Random\Parent\Sub\Sub\1234.zip {ABCD.tif}

我正在寻找什么 C:\This\Is\Random\Parent\Sub\Sub\1234.tif

set work=%temp%\%random%%random%%random%%random%
mkdir "%work%" || goto :eof

for %%A in ('dir /b /s *.zip *.rar') do (
"%ProgramFiles%\7-Zip\7z.exe" e -o"%work%" "%%~A"
for %%F in ("%work%\*") do move "%%~F" "%%~nA%%~xF"
)

rmdir "%work%"

答案1

我可以进行以下更改来实现我想要的效果

set work=%temp%\%random%%random%%random%%random%
mkdir "%work%" || goto :eof

for /F %%I IN ('dir /b /s *.zip *.rar') do (
"%ProgramFiles%\7-Zip\7z.exe" x -o"%work%" "%%~I"
for %%F in ("%work%\*") do move "%%~F" "%%~nI%%~xF"
)

rmdir "%work%"

现在唯一的问题是提取的 .tif 名称中包含“.zip”。如能帮助解决,我们将不胜感激

相关内容