我有一个目录,其中包含多个.tar
文件,这些文件中又包含多个.zip
文件。树状结构大致如下:
testDirectory
-tarArchive.tar
-directory1
-zipArchive11.zip
abc.XML
1.TIF
2.TIF
...
-zipArchive12.zip
xyz.XML
a.TIF
b.CDX
...
.
.
.
-directory2
-zipArchive21.zip
...
-zipArchive22.zip
...
.
.
.
.
.
我需要一个批处理脚本来递归提取每个
.zip
中的 .XML
,同时保持目录结构(首先从主 .tar
中提取所有 .zip
,然后只提取每个 .zip
中的 .XML
)。此外,处理后的存档应该被删除。我能够通过以下代码实现大部分功能。
for /R "C:\Users\frozenfyr\Desktop\test" %%I in ("*.zip", "*.tar") do (
"C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI" && del "%%~fI"
)
除了两件事:
我无法仅提取
.XML
文件。"C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI"
"*.zip" -r
将不会提取XML文件,而"C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI"
"*.XML" -r
不起作用,因为在.tar
文件中没有匹配项。是否有一种方法可以做类似于"C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI"
"*.zip" "*.XML" -r
的操作?主要的
.tar
文件在处理后未被删除。我尝试在.zip
文件上运行此脚本,它有效(处理后被删除)。
-x
开关,但它没有用处。我不能在这里引用所有的参考文献,但我确实查看了很多SO和SU的帖子,Google可能这次不是我的朋友。我不确定SO或SU应该是提问这个问题的地方,我在两个社区都找到了好的参考资料。我经常使用SO所以我来这里。
请帮帮我,这让我发疯了...