提取多个7z文件会覆盖相同的文件夹

时间:2018-03-13 14:49:03

标签: powershell 7zip

我目前正在开展一个项目,在这个项目中我会收集多个7z文件,并将这些文件的内容提取到一个名为与7z文件本身相同的文件夹中。如果这样的事情已经得到回答,我也会道歉;我花时间试图调查这个问题,但我似乎找不到其他有类似问题的人。

例如: a1.7z - &gt; <targetpath>/a1/<contents within a1.7z>

以下shell行:a1.7z | % {& "C:\Program Files\7-Zip\7z.exe" "x" $_.fullname "-o<targetpath>\a1" -y -r}

像梦一样,但只适用于一个7z文件。但是,每当我开始提取第二个7z文件时,它都不会创建新文件夹,而是继续添加到创建的同一个第一个文件夹中;第二个文件夹永远不会。当我手动突出显示我要提取的所有7z文件时,右键单击并选择&#34;提取到&#34; * \&#34;,它会按我的意愿执行,但我可以&#39;弄清楚如何编写此动作的脚本。我还要提一下,一些7z文件在解压缩时可以包含同名的子文件夹。我不确定这是否会拖延递归周期,但我认为可能就是这种情况。

非常感谢有关此主题的任何帮助或建议!

1 个答案:

答案 0 :(得分:0)

如果你将所有.7z文件作为IOFileInfo对象(使用get-childItem),你可以使用Mathias注释,作为管道执行此操作的一种方法,但我建议你把它放在一个循环中并寻找更好的选择文件夹名称的方法即&#34; NofFolder _ $ _基础名称&#34;只是在多于一个具有相同名称的文件夹的情况下。

这实际上取决于你想要的格式。