7zip解压缩文件夹,重命名内容,重新压缩文件夹

时间:2018-03-12 13:01:50

标签: batch-file 7zip

我有一个包含数千个文件夹的列表。这些文件夹里面是zip文件。我需要解压缩文件夹,将压缩文件夹的内容重命名为“zipped folder name”& “_”& “文件名”然后重新压缩解压缩的文件夹。我已经尝试过这个批处理代码,但它无法正常工作,只需创建一个带有压缩文件名的文件夹即可。任何帮助表示赞赏!我有7zip和powershell作为我合作的主要选项,但我会尽一切努力。

@echo off
setlocal enableextensions disabledelayedexpansion
for %%z in (*.zip) do (
    if not exist "%%~nz" md "%%~nz"
    7za e -o"%%~nz" "%%~fz"
    for %%f in ("%%~nz\*") do ren "%%~ff" "%%~nz - %%~nxf"
)

1 个答案:

答案 0 :(得分:0)

您的代码缺少归档步骤 我建议将修改后的档案放入一个单独的目录中,以防出现问题,原始文件将保持不变。

这是可能的代码:

@echo off
setlocal enableextensions disabledelayedexpansion
set OUTPUT_DIR=..\output
md "%OUTPUT_DIR%"
for %%z in (*.zip) do (
    if not exist "%%~nz" md "%%~nz"
    7za e -o"%%~nz" "%%~fz"
    for %%f in ("%%~nz\*") do ren "%%~ff" "%%~nz - %%~nxf"
    7za a -tzip "%OUTPUT_DIR%\%%~nz.zip" ".\%%~nz\*"
) 

而且,由于您使用-e而非-x,我认为您的zip存档是平的,即他们在子目录中没有重复的文件名。