1

Я хочу использовать 7-Zip для архивирования подпапок в другую папку на том же диске.

Каждая подпапка содержит миллионы текстовых файлов.

Я просто хочу сжать подпапку целиком с помощью Powershell.

У меня есть сценарий, но не работает и без ошибок.

(C:\backup содержит несколько вложенных папок, только нужно сжать вложенные папки в папку :\backup to 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 ответ1

0
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


}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .