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



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

例如: A1.7z -><targetpath>/a1/<contents within a1.7z>

以下外壳线:a1.7z | % {& "C:Program Files7-Zip7z.exe" "x" $_.fullname "-o<targetpath>a1" -y -r}

像梦一样工作,但仅适用于一个 7z 文件。但是,每当我开始提取第二个 7z 文件时,它都不会创建新文件夹,而是会继续添加到创建的同一个第一个文件夹中;永远不会创建第二个文件夹。当我手动突出显示要提取的所有 7z 文件时,右键单击并选择"提取到"*\",它会执行我希望它执行的操作,但我无法弄清楚如何编写此操作脚本。我还应该提到,一些 7z 文件在提取时可以包含同名的子文件夹。我不确定这是否抛弃了递归循环,但我假设可能是这种情况。

有关此主题的任何帮助或建议将不胜感激!

如果您将所有.7z文件作为IOFileInfo对象(使用get-ChildItem)获取,则可以使用Mathias注释作为使用管道执行此操作的一种方法,但是我建议您将其放在循环中并寻找更好的方法来选择文件夹的名称,即"NofFolder_$_。基本名称",以防万一有多个具有相同名称的文件夹。

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

最新更新