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

Posted

技术标签:

【中文标题】使用批处理解压缩和重命名文件 (Windows)【英文标题】:Unzip and rename files with a batch (Windows) 【发布时间】:2017-08-10 22:34:42 【问题描述】:

我是批处理文件的新手,我的代码有些问题。我已经调查了此页面的其他问题,但仍然无法完成我的任务。我在同一个目录中有多个压缩文件夹,每个文件夹中有一个 .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

【问题讨论】:

我不能了解ren 命令如何给出FolderA.zip with file xyz.html 结果?你能解释更多吗? 【参考方案1】: 迭代 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

【讨论】:

以上是关于使用批处理解压缩和重命名文件 (Windows)的主要内容,如果未能解决你的问题,请参考以下文章

使用创建日期复制和重命名文件(批处理脚本)

如何使用环境变量复制和重命名文件?

使用文件夹名称复制和重命名文件的批处理文件

批量 zip 提取并使用 zip 文件名重命名

如何在 Python 中重命名解压缩的文件?

在github中移动和重命名文件