我使用了一个过时的旧程序,它创建了一个文件夹,并在其中"根";文件夹它在该文件夹中创建其他文件夹它创建运行的程序输出的rar文件。
根
Folder
zipfile
Folder
zipfile
请注意,根目录中有400多个文件夹,每个文件夹中都有一个zip文件,我需要解压缩。
该文件夹是基于它运行的时间,并且该程序每分钟运行2次到每分钟6次;根";文件夹。
要查看信息,我需要解压缩它在该文件夹中创建的文件。问题是,我在一个中心文件夹中有400多个文件夹,必须将所有文件解压缩到它们当前所在的文件夹中。
我知道WinRar有一个unrar-here函数,我已经生成了一个文本文件,其中列出了我需要unrar的每个文件夹的目录。每行一个文件夹。
基本上,我需要一个批处理文件,它将进入每个文件夹,在这里执行unrar,然后转到下一个文件夹。
有什么帮助吗?我在一个Win10家庭系统和我的注册版本5.80的WinRAR。我不是Powershell用户,我从今天开始学习,我确实使用Powershell生成了带有目录列表的txt文件。
(Get-ChildItem-Recurse-Filter">zip".FullName| Out File d:\pattern.txt
所以我并非完全一无所知。
谢谢。
作为对Campo的回应,我使用WinRar来处理Zips和Rars,当我安装了WinRar时,我发现我不需要拉链提取器。
我在评论中询问扩展的原因是因为您说您已经使用powershell
使用Get-ChildItem
创建了一个文件列表,并希望开始学习它。
正如你所说的,你在Windows 10中使用PowerShell,我希望你有PowerShell v5.0+。因此,这是PowerShell脚本的一行,或者直接在PowerShell提示符下输入,它应该直接解压缩你的每个.zip
文件,而不引入第三方实用程序,如WinRAR。
请根据您的具体位置更改-Path
字符串
Get-ChildItem -Path "C:UsersFrankRoot" -Filter "*.zip" -File -Recurse | ForEach-Object { Expand-Archive -Path $_.FullName -DestinationPath $_.DirectoryName -Force }
您没有说明在取消配置zip文件后是否要删除它,所以如果您想要该功能,出于本练习的目的,您可以简单地附加一个删除命令:
Get-ChildItem -Path "C:UsersFrankRoot" -Filter "*.zip" -File -Recurse | ForEach-Object { Expand-Archive -Path $_.FullName -DestinationPath $_.DirectoryName -Force; Remove-Item $_.FullName }
请注意,该示例只是您的一个起点。当你了解到更多信息时,你可以为它添加健壮性,例如,防止在提取失败时删除zip文件,以及在出现错误时该怎么办。