好的,所以我很新 - 目前正在学习 Python 和 PowerShell,但我遇到了问题,正在尝试用代码解决它。
我需要一个脚本
- 查看文件夹以查找 .zip 文件
- Unzip 定位文件(到任何目的地,我可以定义)
- 删除已完成的 zip。
- 重复步骤 1-3,直到目标中不再有 zip 文件
我试图在 PowerShell 中编写一个简单的循环,但我不知道如何让 Expand-Archive 配合。当我使用 *.zip 通配符作为路径或文字路径时,我将它指向多个文件会很生气。
目的地有数千个文件,而且它们并不小,因此手动解压缩将非常耗时,并且将路径命名为 zip 文件称为五千次只会稍微减少耗时。
回答1
Get-ChildItem 将不起作用。这是因为它必须先构建列表,然后才能开始运行任何操作。通过构建列表,它必须将所有项目放入内存中,然后它可以应用过滤器或执行其他操作。
如果您希望针对大量项目运行它,则需要使用 .net 调用:[System.IO.Directory]::GetFiles() https://stackoverflow.com/questions/45393327/get-childitem-vs-direct-use-of-the-net-frameworks-system-io-directorygetf
这些调用,当通过管道“|”使用其他命令会将项目列表流式传输到命令,并允许您更快地对文件运行一堆过滤器。您仍然需要弄清楚一些事情。