我想使用 7-Zip 将子文件夹压缩到同一驱动器上的另一个文件夹。
每个子文件夹都有无数的文本文件。
我只想通过 Powershell 将子文件夹作为一个整体进行压缩。
我有一个脚本,但是不能运行,也没有错误。
(C:\backup
包含一些子文件夹,只想将子文件夹压缩:\backup
到c:\archive
文件夹下。)
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {
throw "$env:ProgramFiles\7-Zip\7z.exe needed"
}
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
$files="c:\backup"
$target="c:\archive"
$dirs = Get-ChildItem -Path $files | Where-Object { $_.Attributes -eq "Directory" }
Foreach ($dir in $dirs)
{
$name = $dir.name
$newname = $name.ToLower() -replace(" ","")
sz a -t7z "$target\$newname" "$files\$dir"
}
答案1
Function create-7zip([String] $aDirectory, [String] $aZipfile){
[string]$pathToZipExe = "C:\Program Files\7-zip\7z.exe";
[Array]$arguments = "a", "-tzip", "$aZipfile", "$aDirectory", "-r";
& $pathToZipExe $arguments;
}
$files="c:\backup"
$target="c:\archive"
$dirs = Get-ChildItem -Path $files | Where-Object { $_.Attributes -eq "Directory" }
Foreach ($dir in $dirs){
$name = $dir.name
$newname = $name.ToLower() -replace(" ","")
create-7zip $files $target.zip
}