Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理-提取多个zip文件,重命名在同一目录中提取的文件_Batch File_Zip_Extract - Fatal编程技术网

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

Batch file 批处理-提取多个zip文件,重命名在同一目录中提取的文件,batch-file,zip,extract,Batch File,Zip,Extract,您好,我有许多zip文件位于g:\toto。这些拉链包含一些文件。我想解压缩同一目录中的所有zip文件(g:\toto\extracted),然后重命名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_1

您好,我有许多zip文件位于
g:\toto
。这些拉链包含一些文件。我想解压缩同一目录中的所有zip文件(
g:\toto\extracted
),然后重命名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

我找到了,但它谈论的是.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"
)
免责声明:我不是7-Zip的活跃用户。这是我用来作为参考来提出上述命令的:

7z e "%%Z" -o"%tmpdir%"