使用命令 compress-archive 根据名称压缩文件夹的 Powershell 脚本
Powershell script to zip folder base on their name with the command compress-archive
我正在尝试将目录中的每个文件夹压缩成同名的 zip
我尝试了简单的压缩归档命令
Compress-Archive $targetFolderPath -Destination $zipFolder -Update
但它只给我一个名为“.zip”的 zip,里面有我的所有文件夹,这不是我想要的
然后我找到了这个,这是我最好的尝试:
Get-ChildItem $targetFolderPath -Directory | foreach { compress-archive $_ $_.basename -update}
我为一个 zip 文件找到了一个正确名称的文件夹,这很好,但是我无法选择目标目录
任何人都可以看到我需要做些什么来制作这个 运行 吗?
谢谢
这是我想出的。如果需要,您仍然可以将其转换为 one-liner,但我更喜欢更冗长一点,因为代码更易于阅读。
$Folders = @(Get-ChildItem $TargetFolderPath -Directory)
foreach ($Folder in $Folders) {
$Zipfile = Join-Path -Path $ZipFolder -ChildPath ($Folder.name + '.zip')
try {
Compress-Archive `
-Path $Folder.FullName `
-DestinationPath $Zipfile `
-CompressionLevel Fastest `
-Update `
-ErrorAction Stop
} catch {
Write-Warning "Unable to archive $($Folder.FullName): $($_.Exception.Message)"
}
}
我正在尝试将目录中的每个文件夹压缩成同名的 zip
我尝试了简单的压缩归档命令
Compress-Archive $targetFolderPath -Destination $zipFolder -Update
但它只给我一个名为“.zip”的 zip,里面有我的所有文件夹,这不是我想要的
然后我找到了这个,这是我最好的尝试:
Get-ChildItem $targetFolderPath -Directory | foreach { compress-archive $_ $_.basename -update}
我为一个 zip 文件找到了一个正确名称的文件夹,这很好,但是我无法选择目标目录
任何人都可以看到我需要做些什么来制作这个 运行 吗?
谢谢
这是我想出的。如果需要,您仍然可以将其转换为 one-liner,但我更喜欢更冗长一点,因为代码更易于阅读。
$Folders = @(Get-ChildItem $TargetFolderPath -Directory)
foreach ($Folder in $Folders) {
$Zipfile = Join-Path -Path $ZipFolder -ChildPath ($Folder.name + '.zip')
try {
Compress-Archive `
-Path $Folder.FullName `
-DestinationPath $Zipfile `
-CompressionLevel Fastest `
-Update `
-ErrorAction Stop
} catch {
Write-Warning "Unable to archive $($Folder.FullName): $($_.Exception.Message)"
}
}