将多个文件解压到不同目录
Unzip Multiple Files into Different Directories
我有多个 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 变成 Other-Name-Here, etc?
谢谢!
因为您只指定了一个目标路径,所以它们都将被提取到 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++)
}
我有多个 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 变成 Other-Name-Here, etc?
谢谢!
因为您只指定了一个目标路径,所以它们都将被提取到 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++)
}