Windows: 命令行如何解压缩文件并在当前文件夹和子文件夹中使用压缩文件名重命名其内容?

Windows: command line how to unzip file and rename it's content with zipped file name in current folder and sub folder?

如果我能在这方面得到帮助,我将不胜感激,我有以下脚本可以使用压缩文件名解压缩和重命名内容,但它仅适用于当前文件夹,我需要它也适用于子文件夹!

@Echo off
for /F %%I IN ('dir /b  *.zip *.rar') DO (
     "C:\Program Files-Zipz.exe" x -o"%%~dpI" "%%I" -aoa
    for /F "delims=" %%f in ('dir  /b *.html') do (
        ren "%%f" "%%~nI.html"
    ) 
)

它应该搜索任何 .zip 文件并将其解压缩并使用 zip 文件重命名其内容,例如:

abc.zip ---> 包含 xyz.html

结果应该是----> abc.html

我找到了 work-around,它不是最好的,但可以解决问题,您需要创建一个以所需目录为目标的脚本和 运行 仅在当前目录中运行的其他脚本.

脚本目标目录:

cd /D D:\Target\
Call C:\Scripts\UnzipRenameScript.cmd

这里是完成工作的脚本 (UnzipRenameScript):

@Echo off
for /F %%I IN ('dir /b  *.zip *.rar') DO (
    del "%%~nI.html"
     "C:\Program Files-Zipz.exe" x -o"%%~dpI" "%%I" -aoa
    for /F "delims=" %%f in ('dir  /b *.html') do (
        ren "%%f" "%%~nI.html"
    del "%%~nI.zip"
    ) 
)