我有多个zip文件。
它们分别称为folder(1).zip,folder(2).zip,folder(3).zip。使用PowerShell,当我尝试使用此方法将它们全部解压缩到唯一的文件夹中时。
Get-ChildItem 'c:\users\name\downloads' -Filter *.zip | Expand-Archive -DestinationPath 'c:\users\name\downloads' -Force
我将所有文件放入一个称为“文件夹”的文件夹中。如何获取zip文件夹以解压缩到单独的文件夹中?
奖金问题,作为此过程的一部分,有没有办法在每个文件夹出来时对其进行重命名,以便folder(1).zip成为 Name-Here ,folder(2).zip变成这里的其他名称,等等?
谢谢!
答案 0 :(得分:0)
由于仅指定了一个目标路径,因此它们都将被提取到c:\users\name\downloads
中。我想每个zip归档文件都包含一个名为“文件夹”的文件夹,因此所有归档文件中的所有内容最终都放在c:\users\name\downloads\folder
您必须为每个档案指定不同的目标路径。不确定您的命名约定是什么,我使用了一个简单的计数器:
$counter = 0
Get-ChildItem 'c:\users\name\downloads' -Filter *.zip | foreach {
$destination = Join-Path $_.DirectoryName ("YourName" + $counter++)
Expand-Archive $_.FullName -DestinationPath $destination
}
我当然认为,现在这些文件夹中的每个文件夹都将具有子文件夹“文件夹”,但是如果这是建立归档文件的方式,则实际上没有办法更改它。如果您绝对确定所有档案都具有该子文件夹,则可以执行以下操作:
$counter = 0
Get-ChildItem 'c:\users\name\downloads' -Filter *.zip | foreach {
# expand to the root folder first
Expand-Archive $_.FullName -DestinationPath $_.DirectoryName
# now rename the extracted "folder" to whatever you like
Rename-Item (Join-Path $_.DirectoryName "folder") -NewName ("YourName" + $counter++)
}