gpt4 book ai didi

batch-file - 批处理 - 提取多个 zip,重命名在同一目录中提取的文件

转载 作者:行者123 更新时间:2023-12-01 01:11:18 25 4
gpt4 key购买 nike

嗨,我有很多 zip 文件位于 g:\toto .这些 zip 包含一些文件。我想在同一目录( g:\toto\extracted )中提取所有 zip,然后重命名 zip 的各种文件。

示例 1:

www_12567.vp.zip : 3 files : alpha.doc, beta.xls, teta.doc

我想解压后,文件重命名为 zip 的名称
www_12567.vp.alpha.doc, www_12567.vp.beta.xls, www_12567.vp.teta.doc

示例 2:
www_12.vp.zip : 3 files : al.doc, bea.xls, tta.doc
www_12.vp.al.doc, www_12.vp.bea.xls, www_12.vp.tta.doc

我找到了 this question ,但它谈论 .txt 并且 zip 包含一个文件,因此,它不起作用。

最佳答案

如果不知道存档的内容,您就无法知道要重命名哪些文件,因为您将它们放入可能已经包含其他文件的目录中。

但是,如果有一个专门的目录来临时放置文件,这会容易得多。以下是您可以如何使用它:

@ECHO OFF
SET "srcdir=G:\toto"
SET "tgtdir=G:\toto\extracted"
SET "tmpdir=G:\toto\extracted-tmp"
FOR %%Z IN ("%srcdir%\*.zip") DO (
unpack "%%Z" with your favourite tool into "%tmpdir%"
FOR %%I IN ("%tmpdir%\*") DO MOVE "%%I" "%tgtdir%\%%~nZ.%%~nxI"
)

当然,在运行批处理文件之前,临时目录需要为空。您可以添加 DEL "%tmpdir%\*"循环之前的某个地方,以确保它是。

另一个注意事项是,上述假设文件不包含子目录,或者至少在没有子目录的情况下提取文件。

更新

如果您使用 7-Zip 存档器来处理 .zip文件,那么这就是您的提取命令的外观:
7z e "%%Z" -o"%tmpdir%"

免责声明:我不是 7-Zip 的活跃用户。这是我用来作为引用来提出上述命令的:
  • 7-Zip Command-Line Examples
  • 关于batch-file - 批处理 - 提取多个 zip,重命名在同一目录中提取的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328718/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com