Đây là một số lẻ. Tôi đang chạy 7-zip [64] phiên bản 16.04 trên windows 10.
Tôi có kịch bản powershell sau đây. chương trình $ zip được đặt thành 7z.exe, tập lệnh chạy tốt.
Nếu tôi thay đổi chương trình $ zip thành 7zg.exe thì tôi gặp lỗi khi tạo chạy lần thứ hai trong tập lệnh. Nó phàn nàn rằng kho lưu trữ Gl.7z đã tồn tại!
Như bạn có thể thấy, tôi thậm chí đang cố gắng thay đổi lệnh từ "a" thành "u" (cập nhật) cho thư mục thứ hai (sherlock) nhưng điều đó không giúp ích gì. (Tôi không phải làm điều đó trong 7z.exe).
Điều gì mang lại và tại sao 7zg.exe khác với 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
1
'G' trong '7zG' là viết tắt của phiên bản G UI, trong khi bạn cần phiên bản hàng loạt.
—
harrymc
Tôi sắp xếp để xem GUI, vì việc này mất nhiều thời gian. Tên của phiên bản lô @harrymc là gì?
—
Dr.YSG
Nó được gọi là
—
harrymc
7z.exe
.
Vâng, đó là những gì tôi đã làm việc. 7z.exe. Bạn có thấy lạ không khi nó nhận cùng một đối số lệnh nhưng không làm điều tương tự? 7z.exe hoạt động theo cách nguyên thủy đối với tôi. Tôi đã hy vọng tôi có thể làm điều tương tự với nhiều lần gọi 7zg.exe
—
Dr.YSG
Vâng, có vẻ như không thể. Vì vậy, tôi chỉ cố gắng
—
harrymc
7zg a test.7z file1
và sau đó 7zg a test.7z file2
và họ làm việc tốt. Tôi nghĩ bạn nên gỡ lỗi script ( liên kết hữu ích ).