Вот странный. Я бегу 7-zip [64] версия 16.04 на Windows 10.

У меня есть следующий скрипт PowerShell. для программы $ zipper установлено значение 7z.exe, скрипт работает нормально.

Если я изменю программу $ zipper на 7zg.exe, то получаю сообщение об ошибке при создании ее второго запуска в сценарии. Жалуется, что архив Gl.7z уже существует!

Как видите, я даже пытаюсь изменить команду с "a" на "u" (обновить) для второй папки (sherlock), но это не помогло. (Мне не нужно делать это для 7z.exe).

Что дает и почему 7zg.exe отличается от 7z.exe?

clear-host
Set-Location $PSScriptRoot # set current directory to location of script
[string]$zipper = "$($Env:ProgramFiles)\7-Zip\7z.exe"
[Array]$archive = "GL.7z"
[Array]$flags = "a","-t7z","-mx1","-mmt=on","-ms=on", "-r"
[Array]$skip = "-xr!.svn","-xr!.vs","-xr!bin","-xr!obj","-xr!Properties","-x!*.csproj","-x!*.user","-x!*.sln","-x!*.suo","-x!web.config","-x!web.*.config"
if (Test-Path $archive) {
  Remove-Item $archive
}
$startDate = Get-Date
Write-Output "starting at:  $startDate"
$ElapsedTime = [System.Diagnostics.Stopwatch]::StartNew()
Write-Output "Toby............................................................................................"
[Array]$in = "..\Toby"
[Array]$cmd = $flags + $archive + $in + $skip
& $zipper $cmd
Write-Output "Sherlock............................................................................................"
[Array]$flags = "u","-t7z","-mx1","-mmt=on","-ms=on", "-r"
[Array]$in = "..\Sherlock"
[Array]$cmd = $flags + $archive + $in + $skip
& $zipper $cmd
exit
Write-Output "Watson............................................................................................"
[Array]$in = "..\Watson"
[Array]$wskip = "-xr!.svn","-xr!.svn", "-xr!obj", "-x!*.md", "-x!watson.log*.json", "-x!*.sln", "-x!*.suo", "-x!*.njsproj", "-x!*.dat", "-x!*.md", "-x!*LICENSE*", "-x!*.yml", "-x!*.git*", "-x!.npm*", "-x!*.c", "-x!*.txt", "-x!Makefile", "-x!.jshint*", "-x!readme*"
[Array]$cmd = $flags + $archive + $in + $wskip
& $zipper $cmd
Write-Output "Doc............................................................................................"
[Array]$in = "..\doc"
[Array]$cmd = $flags + $archive + $in + $skip
& $zipper $cmd
Write-Output "Setup............................................................................................"
[Array]$in = "..\setup"
[Array]$cmd = $flags + $archive + $in + $skip
& $zipper $cmd
exit
Write-Output "Base Maps Files............................................................................................"
[Array]$in = "..\BaseMaps"
[Array]$cmd = $flags + $archive + $in + $skip
& $zipper $cmd

write-host "Total Elapsed Time: $($ElapsedTime.Elapsed.ToString())"

# list files: 
# &$zipper l $archive

# 7z e archive.zip -oc:\soft *.cpp -r

0