从当前文件夹的所有zip文件中提取所有特定文件,并将仅zip文件压缩回单独的文件夹中

问题描述 投票:0回答:1

我已经尝试学习并制作批处理,该批处理将从目录中的所有zip文件中提取一个特定文件,并以以下格式为其命名:filename_%myvariable%.xml

但是我正在努力为提取的文件提供适当的名称。这是我现在的代码:[下面的更新代码]

@echo off
SETLOCAL ENABLEEXTENSIONS
setlocal enabledelayedexpansion
SET me=%~n0
SET parrent=%~dp0
for /R "%parrent%" %%I in (*.zip) do (
    7za x "%%I" -o"%%~dpI%%~nI" "ej.xml" -r -y -p2468
    rename %%~dpI%%~nI\ej.xml %%~nI%_ej.xml
    7za a -tzip "%userprofile%\Desktop\temp\%%~nI.zip" "%%~dpI%%~nI\webatm\*.xml" -r -y
    rd /s /q "%%~dpI%%~nI"
    )
REM pause
REM EXIT

zip文件结构是这样的:

Name_ArchiveYYYYMMDDHHMMSS.zip
|-webatm
    |-file.xml
|-otherfolder1
|-otherfolder2
etc...

作为最终结果,我希望使用以下格式的file.xml输出:Name_YYYYMMDD_file.xml

有人可以帮忙吗?

batch-file batch-rename
1个回答
0
投票

这里是我编写的代码,它正在运行。不像我预期的那样,但是接近最终解决方案:

@echo off
SETLOCAL ENABLEEXTENSIONS
setlocal enabledelayedexpansion
SET me=%~n0
SET parrent=%~dp0
for /R "%parrent%" %%I in (*.zip) do (
    7za x "%%I" -o"%%~dpI%%~nI" "ej.xml" -r -y -p2468
    rename %parrent%%%~nI\Webatm\ej.xml %%~nI%_ej.xml
    7za a -tzip "%userprofile%\Desktop\temp\%%~nI.zip" "%%~dpI%%~nI\webatm\*.xml" -r -y
    rd /s /q "%%~dpI%%~nI"
    )
REM pause
EXIT```

i will accept any suggestions / changes or updates regard my final code.

thank you
© www.soinside.com 2019 - 2024. All rights reserved.