压缩子文件夹

压缩子文件夹

我想使用 7-Zip 将子文件夹压缩到同一驱动器上的另一个文件夹。

每个子文件夹都有无数的文本文件。

我只想通过 Powershell 将子文件夹作为一个整体进行压缩。

我有一个脚本,但是不能运行,也没有错误。

C:\backup包含一些子文件夹,只想将子文件夹压缩:\backupc:\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


}

相关内容