Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сжать каждый файл в архив и оставить только те что уменьшились в размере (http://forum.oszone.net/showthread.php?t=347532)

necros2k7 05-01-2021 05:57 2945051

Сжать каждый файл в архив и оставить только те что уменьшились в размере
 
Привет. Вот такой костыль сделал из 2х батников. 1 вызывает другой, если подскажете как сделать это в 1м батнике буду благодарен + как оставить только архивы после сжатия размером меньше чем оригинал, язык реализации неважен.

1.bat -
2 *.db

2.bat -
@echo off
for /R %%i in (%1) do "с:\soft\7z\7z" a -mmt31 -t7z -m0=lzma2 -mx=9 -mfb=273 -md=1536m -ms=on "%%i.7z" "%%i"

DJ Mogarych 05-01-2021 09:22 2945054

Powershell:
Код:

$folder = "C:\temp\test"
$dbs = dir "$folder\*.db"

foreach ($db in $dbs) {
& 'с:\soft\7z\7z.exe' a -mmt31 -t7z -m0=lzma2 -mx=9 -mfb=273 -md=1536m -ms=on "$folder\$($db.basename).7z" "$($db.fullname)" > $null
    if ((Get-Item "$folder\$($db.basename).7z").Length -gt $db.Length) {
    del "$folder\$($db.basename).7z" -Force -Confirm:$false
    }
}



Время: 01:23.

Время: 01:23.
© OSzone.net 2001-