使用批处理解压缩和重命名文件(Windows)

时间:2017-08-10 22:34:43

标签: batch-file archive

我在批处理文件方面非常新,并且我的代码遇到了一些麻烦。我曾在本页的其他问题中进行了调查,但仍然无法完成我的任务。我在同一目录中有多个压缩文件夹,每个文件夹里面都有一个.html文件。我需要解压缩文件夹并使用文件夹名称重命名.html。

示例:

FolderA.zip with file xyz.html
FolderB.zip with file abc.html

结果:

file FolderA.html
file FolderB.html

这是我的代码:

cd C:\Users\MyUser\Desktop
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
set nombre2=%%~naI
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I" -aoa
for /F "delims=" %%f in ('dir /a-d /b *.html') do (
ren %%I %nombre2%.html
 ) 
)
DEL *.zip

1 个答案:

答案 0 :(得分:0)

  • 迭代html文件的for循环变量为%%f而非%%I
  • 您还需要delayed expansion设置并使用 (代码块)中的变量。
  • 修改器~na将返回名称和属性吗?
@Echo off
cd C:\Users\MyUser\Desktop
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
     "C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I" -aoa
    for /F "delims=" %%f in ('dir /a-d /b *.html') do (
        ren ""%%f" "%%~nI.html"
    ) 
)
DEL *.zip