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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Обновления информации на USB (разделе HDD) (http://forum.oszone.net/showthread.php?t=343640)

SergioBS 13-01-2020 10:51 2904705

Обновления информации на USB (разделе HDD)
 
Встал вопрос, как организовать обновления для USB диска (вес 32Gb) - перекачивать все целиком ни каждый захочет...

Рассматриваю вариант:
1. SFX WinRAR, который будет на нужный usb (или раздел HDD, буква у всех своя, самостоятельно указав в корень раздела) - распаковывать каталоги c новыми версиями программ. Но как быть со старыми каталогами? Думаю можно решить этот вопрос bat(cmd) файлом, что бы он удалял каталоги со всем содержимым и списком из разных директорий, после распаковки запускать средствами sfx - bat(cmd) из корня Flash. Но есть как минимум два вопроса... Названия каталогов на русском и пробелы в названиях. Не подумал сразу над структурой диска. Весь софт находится в папке winsoft (в корне диска) в ней рубрики, в ней папки с программами названия которых имеют пробелы.

Пример USB:\winsoft\Графика\WinSnap v5.1.6 - там файлы и возможно каталоги, которые нужно потом удалять, после распаковки новых версий.

Нужна помощь!

DJ Mogarych 13-01-2020 13:48 2904731

Цитата:

Цитата SergioBS
перекачивать все целиком ни каждый захочет »

Откуда перекачивать? На флешке всё должно быть точно так же, как в исходном каталоге?

Iska 13-01-2020 16:40 2904756

SergioBS, о чём вообще речь? Синхронизация свежих версий инсталляций и удаление старых? Я делаю «ручками». Far Manager, одна панель — исходная, другая — целевая. F11, Расширенное сравнение, и — вперёд.

SergioBS 13-01-2020 17:41 2904772

h**ps://nnmclub.to/forum/viewtopic.php?t=1350503 Тут выложен реаниматор. Структура папок после записи их на флеш или на HDD одинакова везде

megaloman,
планирую sfx winrar с папками новых версий программ, с возможностью выбора корня USB Flash или раздела HDD. Батник нужен только для удаления старых каталогов программ, который будет распаковываться в корень флешки и потом удаляться

DJ Mogarych 13-01-2020 17:43 2904775

Код:

robocopy "c:\исходная папка" "usb:\конечная папка" /mir

SergioBS 13-01-2020 18:08 2904778

DJ Mogarych, честно говоря не пойму, что делает эта команда...
Думал будет решение типа
chcp 1251 >nul - русский
RD /S /Q "здесь не знаю, как из корня задать путь (буква у всех разная)\winsoft\Графика\WinSnap v5.1.6"
Накидайте пож-ста вариант для удаления этого каталога. остальное я ручками по примеру :)

Iska 13-01-2020 18:10 2904780

SergioBS, а я не пойму Вашу глобальную цель — что Вы делаете.

SergioBS 13-01-2020 18:40 2904783

Iska, Пытаюсь понять как лучше сделать UPD к сборке Muromec67 USB Reanimator Multiboot, так как сама сборка занимает размер 32Gb и качать весь объем не каждый станет, а выпуск маленького по размеру обновления (размером 100-150Mb будет всем по силу (раз в месяц). Задача удалить с мультизагрузочной флеш (Буква не известна) или с активного раздела внешнего HDD (Буква не известна) старую директорию например WinSnap v5.1.6, так как новый каталог WinSnap v5.1.7 будет распакован из sfx, старый каталог нужно удалить...

Iska 13-01-2020 18:50 2904787

SergioBS, что представляет собой сборка (вышеуказанный ресурс у моего провайдера заблокирован)? Файл ISO-образа? Набор из кучи каталогов и файлов? Как доступен набор — это torrent?

Цитата:

Цитата SergioBS
а выпуск маленького по размеру обновления (размером 100-150Mb будет всем по силу (раз в месяц). Задача удалить с мультизагрузочной флеш (Буква не известна) или с активного раздела HDD (Буква не известна) старую директорию например WinSnap v5.1.6, так как новый каталог WinSnap v5.1.7 будет распакован из sfx, старый нужно удалить... »

Спасибо, с этим понятно.

SergioBS 13-01-2020 18:57 2904792

Iska,
Это торрент трекер. В образе примерно 3600 файлов.
Нет образ в формате *.img c boot секторами, Реаниматор работает не из образа! А из извлеченных из него данных на носитель... Здесь спойлер работает?
Порядок установки на кастрата:

Установка на кастированные Flash USB 32Gb и большего размера 64Gb, 128Gb и т.д.:]
Решение для кастрированных Flash USB 32 Gb (Объем у которых не соответствует заявленной продавцом емкости - вместо заявленной 32Gb по факту может быть 28 Gb - проверяйте реальный размер Вашей Flash USB программой USB Image Tool 1.76
Итак все по шагово...
Работаем с образом Reanimator
1. Извлекаем архиватором 7zip содержимое образа в отдельную папку на свой ПК.
Работа с Flash USB
Будем использовать программу USBbootInstaller_v1.9++ из состава раздачи
1. Форматируем flash USB в формат FAT32
2. Выполняем форматирование
3. Подтверждаем
4. Ждем окончания процесса
5. Установка загрузчика BOOTMGR
6. Выполняем установку загрузчика
7. Установка загрузчика grub4dos
8. Выполняем установку загрузчика
9. Идем на Ваш Flash USB и удаляем с него все файлы и папки созданные при установке загрузчиков BOOTMGR и grub4dos.
Финальная операция
1. Копируем содержимое извлеченного образа на flash USB (Если, что-то не убирается, можно удалить драйвера, без которых можно обойтись, хотя должно убраться)
2. Reanimator готов к использованию!

Iska 13-01-2020 19:54 2904801

Ну, в таком случае, если учитывать всё вышеизложенное, то я не знаю готовых инструментов для озвученного. Ибо, например, если в извлечённом образе будет MyProgramm 2.0, затем будет «патч» его до MyProgramm 2.1, а затем будет ещё один «патч» до MyProgramm 2.2 — то надо будет учитывать возможность наличия и MyProgramm 2.0, и MyProgramm 2.1. И так далее.

Написать, конечно, можно. Но лично мне — не особо интересно.

SergioBS 14-01-2020 03:54 2904834

Iska,
Думал, все намного проще сделать. Не применять патчеры для каждой папки и файлов... а создавать с помощью SFX новые каталоги, а bat(cmd) должен удалять старые, точнее сначала удалять OLD директории, а потом SFX извлекать новые.

megaloman,
Так и есть. В самораспаковщике путь будет относительно корня USB Flash - или раздела HDD (буква у всех своя).
Т.е состав Обновления думал сделать таким образом.

Здесь лишний каталог \чтотоеще\
USB:\winsoft\Антивирус\чтотоеще\нечто v5.1.6?
"2. Имя папки с новой версией образуется по принципу: имябезпробела v5.1.6?" Нет она будет извлекаться каталогом имявозможенпробел v5.1.7, а батник должен удалить OLD каталог имябезпробела v5.1.6

Листинг UPD01 (Январь 2020):

# Directory Lister v2 listing
# Создано 14-01-2020 05:07 с помощью Directory Lister v2.36

Имя
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft (0)
---------------------------------------------------
<Windows>
<Антивирусы>
<Графика>
<Интернет>
<Мультимедиа>
<Офис>
<Утилиты>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Windows (0)
---------------------------------------------------
<StartIsBack AIO v1.0.18>
<TeamViewer v15.1.3937>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Windows\StartIsBack AIO v1.0.18 (5)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
StartIsBack AiO 1.0.18.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Windows\TeamViewer v15.1.3937 (9)
---------------------------------------------------
__About.txt
__Readme.txt
__ResetID.png
_Create installation script.cmd
_Silent Install.cmd
_Silent scripted installation.cmd
_Unpack Portable.cmd
TeamViewer 15.1.3937.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Антивирусы (0)
---------------------------------------------------
<Windows Firewall Control v6.1.0.0>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Антивирусы\Windows Firewall Control v6.1.0.0 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
Windows Firewall Control 6.1.0.0.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Графика (0)
---------------------------------------------------
<Perfectly Clear v3.9.0.1722>
<WinSnap v5.1.7>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Графика\Perfectly Clear v3.9.0.1722 (5)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
Athentech Perfectly Clear Complete 3.9.0.1722.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Графика\WinSnap v5.1.7 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
WinSnap 5.1.7.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Интернет (0)
---------------------------------------------------
<viber v12.2.0.54>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Интернет\viber v12.2.0.54 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
Viber 12.2.0.54.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Мультимедиа (0)
---------------------------------------------------
<EZ CD Audio Converter v9.0.7.1>
<MKVToolNix v42.0.0>
<VidCoder v5.14>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Мультимедиа\EZ CD Audio Converter v9.0.7.1 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
EZ CD Audio Converter 9.0.7.1.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Мультимедиа\MKVToolNix v42.0.0 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
MKVToolNix 42.0.0.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Мультимедиа\VidCoder v5.14 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
VidCoder 5.14.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Офис (0)
---------------------------------------------------
<VueScan v9.7.20>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Офис\VueScan v9.7.20 (7)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
VueScan 9.7.20.exe
Описание.txt
Руководство.chm
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Утилиты (0)
---------------------------------------------------
<PrivaZer v3.0.86>
<Windows 10 Manager v3.2.0>
<z-info v1.0.19>
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Утилиты\PrivaZer v3.0.86 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
PrivaZer 3.0.86.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Утилиты\Windows 10 Manager v3.2.0 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
Windows 10 Manager 3.2.0.exe
Описание.txt
---------------------------------------------------
MUROMEC2020\!!!UPD\SOFT\winsoft\Утилиты\z-info v1.0.19 (6)
---------------------------------------------------
_About.txt
_Readme.txt
_Silent Install.cmd
_Unpack Portable.cmd
Z-Info 1.0.19.exe
Описание.txt
---------------------------------------------------

Общий размер обновления 332mb

Пока, как лучше и без гоморойнее организовать обновления в голову не приходит...

megaloman 14-01-2020 14:57 2904906

SergioBS,
Попробуйте вариант удаления старых версий. Для боевой работы уберите красное Echo
Код:

@Echo Off
Cls
        Set "BoxIn=WinSoft"

        Set "SpisD="
        Set /A N=1
        Set "@@D%N%=A"
        FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
                Call Set /A N+=1
                Call Set "@@D%%N%%=%%i"
                Call Set "SpisD=%%SpisD%%%%i"
        )

        CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
        Call Set "DBoxIn=%%@@D%ErrorLevel%%%:\%BoxIn%"
        If %Errorlevel%==1 Exit /B 0
        If Not Exist "%DBoxIn%" (
                Echo Folder "%DBoxIn%" not found
                Pause
                Exit /B 2
        )
       
        FOR /F "usebackq delims=" %%R IN (`2^>nul Dir "%DBoxIn%" /B /A:D`) Do (
                FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%DBoxIn%\%%R" /B /T:C /O:-D /A:D`) Do (
                        Call :MyRD "%DBoxIn%\%%R\" %%d
                )
        )
Pause
Exit /B

:MyRD
        Set "Mask=%2"
        :Begin
                If "%4"=="" GoTo :End
                Set "Mask=%Mask% %3"
                Shift /2
        :End
        FOR /F "usebackq skip=1 delims=" %%i IN (`2^>nul Dir "%~1%Mask%*" /B /T:C /O:-D /A:D`) Do Echo Rd /S /Q "%~1%%i"
Exit /B

При наличии красного Echo ничего не удаляется, только отображаются папки, которые необходимо удалить
Распаковку не сделал, не знаю, как в самораспаковывающимуся архиву указать в пакетном файле диск.

SergioBS 14-01-2020 17:08 2904937

megaloman,
Какие каталоги нужно удалить посредством *.bat после добавления каталогов посредством SFX с новыми версиями программ

winsoft - основной каталог в корне USB(HDD) с программами Windows:

Каталоги разделов, которые затронуло обновление
<Windows>
<Антивирусы>
<Графика>
<Интернет>
<Мультимедиа>
<Офис>
<Утилиты>
---------------------------------------------------------
Каталоги для удаления в \winsoft\Windows
---------------------------------------------------------
Удалить <StartIsBack AiO v1.0.17> - SFX добавил каталог StartIsBack AIO v1.0.18
SFX добавил новую программу TeamViewer v15.1.3937
---------------------------------------------------------
Каталоги для удаления в \winsoft\Антивирусы
---------------------------------------------------------
Удалить <Windows Firewall Control v6.0.2.0> - SFX добавил каталог Windows Firewall Control v6.1.0.0
---------------------------------------------------------
Каталоги для удаления в \winsoft\Графика
---------------------------------------------------------
Удалить <Athentech Perfectly Clear workbench v3.9.0.1710> - SFX добавил каталог Perfectly Clear v3.9.0.1722
Удалить <WinSnap v5.1.6> - SFX добавил каталог WinSnap v5.1.7
---------------------------------------------------------
Каталоги для удаления в \winsoft\Интернет
---------------------------------------------------------
Удалить <Viber v12.1.0.29> - SFX добавил каталог viber v12.2.0.54
---------------------------------------------------------
Каталоги для удаления в \winsoft\Мультимедиа
---------------------------------------------------------
Удалить <EZ CD Audio Converter v9.0.5.1> - SFX добавил каталог EZ CD Audio Converter v9.0.7.1
Удалить <VidCoder v5.13> - SFX добавил каталог VidCoder v5.14
---------------------------------------------------------
Каталоги для удаления\winsoft\Офис
---------------------------------------------------------
Удалить <VueScan v9.7.18> - SFX добавил каталог VueScan v9.7.20
---------------------------------------------------------
Каталоги для удаления в \winsoft\Утилиты
---------------------------------------------------------
Удалить <PrivaZer v3.0.85> - SFX добавил каталог PrivaZer v3.0.86
Удалить <Windows 10 Manager v3.1.9> - SFX добавил каталог Windows 10 Manager v3.2.0
Удалить <Z-Info v1.0.18> - SFX добавил каталог Z-Info v1.0.19

Не совсем понял как отрабатывает Ваш скрипт и что он удаляет

Указал букву, скрипт отработал, каталоги остались на месте...
В скрипте я сам хотел писать, какие каталоги нужно удалять, в зависимости от того, что обновлялось (версия программы).

megaloman 14-01-2020 17:14 2904938

Цитата:

Цитата SergioBS
Не совсем понял как отрабатывает Ваш скрипт и что он удаляет »

- ничего не удаляет, раз в окне отражаются команды RD. Мне хотелось, чтобы Вы убедились, правильные ли каталоги собирается удалить скрипт. И всё. А для боевой работы я Вас умолял
Цитата:

Цитата megaloman
Для боевой работы уберите красное Echo »

Оно перед RD в последнем For

SergioBS 14-01-2020 17:19 2904939

Нет скрипт удаляет совсем не те каталоги, которые добавились с новыми версиями программ. Для этого обновления нужно удалить каталоги которые есть под спойлером в предыдущем посте. Автоматом этого не сделаешь.
Нужен пример батника, типа
chcp 1251 >nul
RD /s/q БУКВА\winsoft\Графика\WinSnap v5.1.6
Где БУКВА - относительный путь к папке winsoft (батник будет лежать в той же директории, где и папка) - не знаю как прописать относительный путь, должен быть с учетом, что каталоги имеют русское название (это категория софта) и имеют пробелы в названиях... Папки для удаления я бы сам добавлял по мере необходимости, зная что обновлялось и что нужно удалить

Iska 14-01-2020 17:24 2904940

Цитата:

Цитата SergioBS
Думал, все намного проще сделать. »

SergioBS, проще не получится. Вам так и так надо будет учитывать и «торопыг», и «ленивцев». Например, как я уже выше писал, в образе была версия некоего приложения 2.0. Затем Вы сделали обновление до версии 2.1. Затем Вы делаете обновление до версии 2.2. И в этом обновлении Вам нужно будет учесть как тех, кто ещё не обновился с 2.0, так и тех, кто уже обновился до версии 2.1 Вашим же предыдущим обновлением. А потом будет 2.22, 2.3, 2.4 и т.д. Понимаете?

SergioBS 14-01-2020 17:42 2904949

Iska, Другой метод использую. Была папка "Моя программа 1.0" SFX добавил папку "Моя программа 1.5" и батник затер папку "Моя программа 1.0" Сборка обновлена, все... Проще говоря нужен батник в котором можно написать какие каталоги нужно удалять (старые версии софта), применимо к каждому обновлению. Обновления не накопительные. Либо прописывать в батнике все каталоги. которые обновлялись - удалить каталог "Моя программа 1.0", "Моя программа 1.5" если появилась "Моя программа 1.6"

megaloman 14-01-2020 17:53 2904953

SergioBS, Я понимал задачу так:
До работы SFX была папка, допустим "тра ля ля 1.321"
Возможно были и "тра ля ля 1.381.5.987" и т д
После SFX добавилась папка "тра ля ля бог.его.знает"
Скрипт сортирует все папки по маске тра ля ля *" по времени создания и удаляет все, кроме последней созданной -
"тра ля ля бог.его.знает"
Цитата:

Цитата SergioBS
Для этого обновления нужно удалить каталоги которые есть под спойлером в предыдущем посте. »

А что под спойлером? Этот текст есть где-то в виде файла? Его можно пролопатить батником?
Цитата:

Цитата SergioBS
Папки для удаления я бы сам добавлял по мере необходимости, зная что обновлялось и что нужно удалить »

В каком виде? Вы хотите вести список удаляемых папок в каком-то файле?

Iska 14-01-2020 18:14 2904960

Цитата:

Цитата SergioBS
Обновления не накопительные. »

Тогда проще, простите, не мудить белым светом, а время от времени тупо загружать полный образ — на мой взгляд, разумеется.

SergioBS 14-01-2020 21:46 2904994

megaloman,
Под спойлером обычный листинг (текстовый файл с названиями каталогов в заданной директории).
"В каком виде? Вы хотите вести список удаляемых папок в каком-то файле?" - я думал, что проще всего в *.bat (cmd), в любом, который доступен для редактирования...

Попалась на глаза тема:
"Создайте командный файл, который удаляет все файлы и каталоги, в заданных каталогах, указанные в виде списка, занесенного в текстовый файл."
*********************************************
@echo off
SetLocal EnableExtensions

set list=filefolderslist.txt

For /F "UsebackQ delims=" %%a in ("%list%") do (
cd /d "%%~a"
rmdir /S /Q "%%~a" 2>NUL
)
********************************************
Может таким путем пойти? Этот код можно как-то заточить под мои нужды, и какая структура у *.txt - список чем разделен -переводом строки, или символом [;] или пробелом...

Iska,
Не ругайтесь пож-ста, ищу оптимальный вариант... Умел бы SFX WinRAR удалять каталоги, а не только файлы, Желательно перед распаковкой :(

Iska 14-01-2020 22:38 2905003

SergioBS, да я не ругаюсь.

Цитата:

Цитата SergioBS
Умел бы WinRAR удалять каталоги, а не только файлы »

И самораспаковывающиеся модули WinRAR и 7-Zip, и инсталляторы различного толка рассчитаны именно на инсталляцию.

Цитата:

Цитата SergioBS
я думал, что проще всего в *.bat (cmd), в любом, который доступен для редактирования... »

Не, тут надо так — мухи отдельно, котлеты отдельно отдельно — код, отдельно — конфигурация. А уж что там в последнем будет — plain text, ini, xml, json — не суть важно.

SergioBS 14-01-2020 23:37 2905015

Iska,
Уже голова раскалывается... Есть основная работа... Если накопительный UPD... вижу такое, повторюсь после редактирования:
прописывать в батнике (или *.txt) все каталоги. которые обновлялись - удалить каталог "Моя программа 1.0", "Моя программа 1.5" если появилась "Моя программа 2.0"
На сегодня достаточно... Иначе умом тронусь в 52 года... Рановато!

megaloman 14-01-2020 23:44 2905017

Под спойлером обычный листинг (текстовый файл с названиями каталогов в заданной директории
Код:

Каталоги разделов, которые затронуло обновление
<Windows>
 <Антивирусы>
 <Графика>
 <Интернет>
 <Мультимедиа>
 <Офис>
 <Утилиты>
---------------------------------------------------------
Каталоги для удаления в \winsoft\Windows
 ---------------------------------------------------------
Удалить <StartIsBack AiO v1.0.17> - SFX добавил каталог StartIsBack AIO v1.0.18
 SFX добавил новую программу TeamViewer v15.1.3937
 ---------------------------------------------------------
Каталоги для удаления в \winsoft\Антивирусы
---------------------------------------------------------
Удалить <Windows Firewall Control v6.0.2.0> - SFX добавил каталог Windows Firewall Control v6.1.0.0
 ---------------------------------------------------------
Каталоги для удаления в \winsoft\Графика
---------------------------------------------------------
Удалить <Athentech Perfectly Clear workbench v3.9.0.1710> - SFX добавил каталог Perfectly Clear v3.9.0.1722
Удалить <WinSnap v5.1.6> - SFX добавил каталог WinSnap v5.1.7
 ---------------------------------------------------------
Каталоги для удаления в \winsoft\Интернет
---------------------------------------------------------
Удалить <Viber v12.1.0.29> - SFX добавил каталог viber v12.2.0.54
 ---------------------------------------------------------
Каталоги для удаления в \winsoft\Мультимедиа
---------------------------------------------------------
Удалить <EZ CD Audio Converter v9.0.5.1> - SFX добавил каталог EZ CD Audio Converter v9.0.7.1
Удалить <VidCoder v5.13> - SFX добавил каталог VidCoder v5.14
 ---------------------------------------------------------
Каталоги для удаления\winsoft\Офис
---------------------------------------------------------
Удалить <VueScan v9.7.18> - SFX добавил каталог VueScan v9.7.20
 ---------------------------------------------------------
Каталоги для удаления в \winsoft\Утилиты
---------------------------------------------------------
Удалить <PrivaZer v3.0.85> - SFX добавил каталог PrivaZer v3.0.86
Удалить <Windows 10 Manager v3.1.9> - SFX добавил каталог Windows 10 Manager v3.2.0
Удалить <Z-Info v1.0.18> - SFX добавил каталог Z-Info v1.0.19

По этому листингу удаляются каталоги, указанные в нём для удаления.
Код:

@Echo Off
Cls
>nul chcp 1251

        Set "Listing=Z:\Box_In\listing.txt"

        Set "SpisD="
        Set /A N=1
        Set "@@D%N%=A"
        FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
                Call Set /A N+=1
                Call Set "@@D%%N%%=%%i"
                Call Set "SpisD=%%SpisD%%%%i"
        )

        CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
        If %Errorlevel%==1 Exit /B 0

        Call Set "DBoxIn=%%@@D%ErrorLevel%%%"
       
        FOR /F "usebackq delims=" %%s IN (`2^>nul More "%Listing%" ^| FIND /I "Каталог"`) Do Call :MyFind "%DBoxIn%" "%%s"
Pause
Exit /B

:MyFind
        Set "SS=%~2"
        Set "SS=%SS:*\=%"
        If Not "%SS%"==%2 GoTo :Catal
        If "%ND%"=="" Exit /B 2
                FOR /F "delims=<> tokens=2" %%c IN (%2) Do 2>nul RD "%ND%\%%c" /S /Q
        Exit /B
        :Catal
                Set "ND=%~1:\%SS%"
                If Exist "%ND%" Exit /B 0
                Echo Folder "%ND%" not found
                Set "ND="
        Exit /B 2
Exit /B 1



Кстати
Цитата:

Цитата SergioBS
Нет скрипт удаляет совсем не те каталоги, которые добавились с новыми версиями программ »

Так и должно быть. Должен остаться последний добавленный каталог. Или я неправильно понимаю?

SergioBS 15-01-2020 07:18 2905028

megaloman,
Не могу понять Ваш скрипт... Здесь нет привязки по времени (дата создания каталога, последний добавленный каталог), т.к есть программы, которые обновляются раз в год, а то и вообще прекращена их поддержка (но они достойны быть в сборке). Простое (примитивное) действие - удалить выбранные каталоги (которые будут прописаны ручками) - не нужно все усложнять...

megaloman 15-01-2020 13:11 2905089

SergioBS, Давайте разберёмся с постановкой.
Цитата:

Цитата SergioBS
Простое (примитивное) действие - удалить выбранные каталоги (которые будут прописаны ручками) - не нужно все усложнять... »

Напишите и предоставьте пример, как Вы это хотите видеть, например, в обычном текстовом файле. Батник написать при такой постановке не проблема.

Цитата:

Цитата SergioBS
Не могу понять Ваш скрипт... Здесь нет привязки по времени (дата создания каталога, последний добавленный каталог), »

В скрипте именно так и сделано.
Если есть ранее созданные каталоги
"Моя программа 1.0", "Моя программа 1.5"
и если после этого появилась "Моя программа 2.0",
то будут удалены "Моя программа 1.0", "Моя программа 1.5".
Если есть каталог "Чужая программа 000", созданный неважно когда, он не будет удаляться, пока не появится его новый вариант. То есть Ваше: "есть программы, которые обновляются раз в год, а то и вообще прекращена их поддержка (но они достойны быть в сборке)" - выполняется в полной мере.

Цитата:

Цитата SergioBS
Умел бы SFX WinRAR удалять каталоги, а не только файлы, Желательно перед распаковкой »

Если бы не SFX, можно было бы придумать. После распаковки - пожалуйста. Вы дали листинг. В скрипте это реализовано. Если в листинге есть, например, строка
Удалить <Athentech Perfectly Clear workbench v3.9.0.1710> - SFX добавил каталог Perfectly Clear v3.9.0.1722
то скрипт удалит каталог Athentech Perfectly Clear workbench v3.9.0.1710 Тут, естественно, совершенно нет никакой привязки ко времени - что предписывается, то и делаем. И ничего не выдумываем, и ничего иного не трогаем.

Цитата:

Цитата SergioBS
не нужно все усложнять... »

- надо стремиться убрать человеческий фактор -будут прописаны ручками, будут с большой вероятностью ошибки.

SergioBS 15-01-2020 13:57 2905100

megaloman,
Спасибо за активное участие в создании концепции пакетов обновлений для реанимации.
"Если бы не SFX, можно было бы придумать" - а что могло бы быть проще? На трекерах не приветствуются простые архивы, тем более папки с навалом файлов... Думаю, что состав обновления все же распаковывать пользователем в корень USB(HDD) своего раздела. Состав вижу такой:
1. rean.exe - файл запускает оболочку для использования в среде Windows
2. rean.apm - файл библиотека к файлу rean.exe
(Будут в любом случае обновляться...) посредством SFX
3. каталог winsoft - программы Windows в нем будут каталоги программ по разделам, в них новые версии программ
4. upd.bat - запуск скрипта автоматический после извлечения.
5. folderslist.txt - листинг каталогов для удаления из директории winsoft.
Скрипт умеет искать каталоги для удаления в папке winsoft (в той же директории со скриптом, если нет, то нужно будет прописывать полный путь, не зная какую букву выберет пользователь...)? То тогда вижу листинг для UPD01 в следующем виде:
del <StartIsBack AiO v1.0.17>
del <Windows Firewall Control v6.0.2.0>
del <Athentech Perfectly Clear workbench v3.9.0.1710>
del <WinSnap v5.1.6>
del <Viber v12.1.0.29>
del <EZ CD Audio Converter v9.0.5.1>
del <VidCoder v5.13>
del <VueScan v9.7.18>
del <PrivaZer v3.0.85>
del <Windows 10 Manager v3.1.9>
del <Z-Info v1.0.18>
В идеале после отработки скрипта п4. и п.5 самоудаляются, не загрязняют корень диска(раздела).

iglezz 15-01-2020 14:34 2905109

SergioBS, Правильно ли я понимаю, что:
1. На компьютере А скачивается торрент (очередное обновление этого реаниматора).
2. Содержимое образа раскатывается на флешку (или извлекается другим способом)
3. Вручную подготавливается патч-обновление для неких других флешек на местах, где проблематично качать и записывать 32Гб данных.
??

megaloman 15-01-2020 15:02 2905116

Цитата:

Цитата SergioBS
Скрипт умеет искать каталоги для удаления в папке winsoft (в той же директории со скриптом »

upd.bat? В какой директории? Допустим, Z:\ или Z:\winsoft\ ?

SergioBS 15-01-2020 15:15 2905117


iglezz,
Основная раздача torrent файл с образом *.img (32Gb) - его трогать не буду, как раздается, так и раздается. Иногда планирую делать обновления программ для Windows 200-300Mb, скорее всего буду выкладывать на Яндекс.диск или Mail если кому интересно... Все верно.

megaloman,
Папка winsoft в той же директории где и upd.bat. Вот с буквой раздела (диска) тут сложнее, у каждого она своя... Путь должен быть относительный. Как это сделать не знаю...

Iska 15-01-2020 16:49 2905146

Цитата:

Цитата SergioBS
Состав вижу такой:
1. rean.exe - файл запускает оболочку для использования в среде Windows »

SergioBS, тогда берите какой-нибудь AutoPlay Media Studio, лепите оболочку (интерфейс плюс код на Lua «за кадром»), в которой всё это будет — загрузили текущее обновление, запустили, оно попросило выбрать раздел, проверило, что выбранный раздел действительно содержит то, что должно быть, просканировало этот раздел, вывело список того, что будет обновлено и чем будет обновлено, отметило их, например, флажками в списке. Хочет человек обновлять как есть, по умолчанию — оставляет отметки. Не хочет что-то обновлять — снимает потребные отметки. Затем нажимает Обновить и наслаждается процессом обновления/замены/актуализации.

SergioBS 15-01-2020 17:29 2905164

Iska,
AutoPlay Media Studio - Я не знаком с этой программой, оболочка делалась в другой программе. Кто нибудь здесь может помочь с моим вопросом? Скрипт или маленькая программка разницы нет.

Iska 15-01-2020 17:35 2905167

SergioBS, я знаком и с другими. Проблема в том, что если нет внутреннего языка, хотя бы мало-мальского — за такие оболочки и браться не стоит, одни только очередные свистоперделки на выходе получатся. В этом отношении AutoPlay Media Studio со своим Lua — хоть что-то более-менее вменяемое, нежели набор рюшечек.

megaloman 15-01-2020 21:46 2905225

SergioBS,
Развлекаюсь, ухудшаю карму ...
Код:

@Echo Off
        Set "SFXX=winsoft.exe"
        Set "BoxIn=winsoft"

        Set "SFX=%~dp0%SFXX%"
GoTo :Script

:DelDir
\winsoft\Windows\
StartIsBack AiO v1.0.17
StartIsBack AIO v1.0.18
TeamViewer v15.1.3937

\winsoft\Антивирусы\
Windows Firewall Control v6.0.2.0
Windows Firewall Control v6.1.0.0

\winsoft\Графика\
Athentech Perfectly Clear workbench v3.9.0.1710
Perfectly Clear v3.9.0.1722
WinSnap v5.1.6
WinSnap v5.1.7

\winsoft\Интернет\
Viber v12.1.0.29
viber v12.2.0.54

\winsoft\Мультимедиа\
EZ CD Audio Converter v9.0.5.1
EZ CD Audio Converter v9.0.7.1
MKVToolNix v42.0.0
VidCoder v5.13
VidCoder v5.14

\winsoft\Офис\
VueScan v9.7.18
VueScan v9.7.20

\winsoft\Утилиты\
PrivaZer v3.0.85
PrivaZer v3.0.86
Windows 10 Manager v3.1.9
Windows 10 Manager v3.2.0
Z-Info v1.0.18
z-info v1.0.19

GoTo :Eof

rem ===========================================================
:Script
cls
        Call :SeleDisk "DSel" ||Exit /B %Errorlevel%

        rem If Not Exist "%SFX%" (Echo "%SFX%" not found &Pause &Exit /B 2)
        rem --- Запуск SFX ----------------------------------------------------------------------------------
        Call :SFXout "%DSel%" "%BoxIn%" "%SFX%" ||Exit /B %Errorlevel%

        FOR /F "usebackq tokens=1* delims=:" %%a IN (`2^>nul FINDSTR /I /L /B /N ":DelDir" "%~dpnx0"`) DO (
                FOR /F "usebackq delims=" %%s IN (`2^>nul More +%%a "%~dpnx0"`) DO (
                        Echo %%s|>nul 2>nul FINDSTR /I /L /B "GoTo :Eof"&&Exit /B
                        Call :Working "%DSel%" "%%s" ||Exit /B %Errorlevel%
                )
        )
Pause
Exit /B

:SFXout
SetLocal
        Pushd "%~1:\" ||(Echo "%~1:\" not found &Pause &Exit /B 2)
        If Not Exist "%~1:\%~2" (Echo Folder "%~1:\%~2" not found &Pause &Exit /B 2)
        %3
        Popd
EndLocal
Exit /B 0

:SeleDisk
SetLocal
        Set "SpisD="
        Set /A N=1
        Set "@@D%N%=A"
        FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
                Call Set /A N+=1
                Call Set "@@D%%N%%=%%i"
                Call Set "SpisD=%%SpisD%%%%i"
        )
        Echo ===========================================================
        Echo Select output disk
        Echo.
        CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
        If %Errorlevel%==1 Exit /B 3

        Call Set "DDD=%%@@D%ErrorLevel%%%"
        Echo ===========================================================
EndLocal &Set "%~1=%DDD%"
Exit /B 0

:Working
        Call :DelSpace "%~2" "Str"
        Set "SS=%Str%"
        Set "SS=%SS:*\=%"
        If Not "%SS%"=="%Str%" GoTo :Catal

        If "%ND%"=="" Exit /B 0
                2>nul RD "%ND%%Str%" /S /Q
rem                2>nul Md "%ND%%Str%"
        Exit /B
        :Catal
                Set "ND=%~1:\%SS%"
                If Exist "%ND%" Exit /B 0
                Echo Folder "%ND%" not found
                Set "ND="
Exit /B 0

:DelSpace
SetLocal
        Set "SSS=%~1"
        :Begin
                Set "SS=%SSS%"
                If "%SSS:~-1%"==" " Set "SSS=%SSS:~0,-1%"
                If "%SSS:~0,1%"==" " Set "SSS=%SSS:~1%"
                If Not "%SS%"=="%SSS%" GoTo :Begin
EndLocal &Set "%~2=%SSS%"
Exit /B

Батник и SFX-файл должны быть в одной папке
Set "SFXX=winsoft.exe" -здесь задаётся имя SFX-файла
Set "BoxIn=winsoft" -здесь задаётся имя папки, куда распаковывается SFX
Между :DelDir и GoTo :Eof список удаляемых папок (Вы именно этого хотели, наваять его вручную!) по следующей структуре

\winsoft\Графика\ - имя корневой директории группы файлов
Athentech Perfectly Clear workbench v3.9.0.1710 - имена поддиректорий в этой корневой директории
Perfectly Clear v3.9.0.1722
WinSnap v5.1.6
WinSnap v5.1.7

Вы вроде бы хотели всё расположить в батнике?
SFX можно не запускать. Закомментируйте красную строку
Кроме того, сейчас закомментирован контроль наличия SFX

Для выбора имени диска предоставляется диалог выбора буквы диска из имеющихся
В интерфейсе SFX этот выбор будет подсвечен автоматически

SergioBS 16-01-2020 10:13 2905267

megaloman, Спасибо, уже понятнее в скрипте. Нужно тестить и общаться.
Наколько я понял upd.bat нельзя просто кинуть в SFX и там его исполнить? На нужном разделе...

megaloman 16-01-2020 13:33 2905299

Цитата:

Цитата SergioBS
нельзя просто кинуть в SFX и там его исполнить? »

Льзя.
Цитата:

Цитата megaloman
SFX (в батнике)можно не запускать. Закомментируйте красную строку
Кроме того, сейчас закомментирован контроль наличия SFX »

Наверное надо доработать в батнике выбор диска после отработки SFX. Список дисков известен, имя папки (у Вас winsoft) известно, проверим наличие на каждом из доступных дисков этой папки и, если она единственная, то и ручной выбор делать не надо - путь ясен.
Доработка касается только одной процедуры - замените старую на приведенную здесь
Код:

:SeleDisk
SetLocal
        Set "SpisD="
        Set /A N=1
        Set "@@D%N%=A"
        FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
                If Exist "%%i:\%BoxIn%" (
                        Call Set /A N+=1
                        Call Set "@@D%%N%%=%%i"
                        Call Set "SpisD=%%SpisD%%%%i"
                )
        )
        If %N%==2 (EndLocal &Set "%~1=%@@D2%" &Exit /B 0)
        Echo ===========================================================
        Echo Select output disk
        Echo.
        CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
        If %Errorlevel%==1 Exit /B 3

        Call Set "DDD=%%@@D%ErrorLevel%%%"
        Echo ===========================================================
EndLocal &Set "%~1=%DDD%"
Exit /B  0


SergioBS 16-01-2020 14:00 2905303

megaloman,
Вы пишите:
"Set "BoxIn=winsoft" -здесь задаётся имя папки, куда распаковывается SFX" - SFX распаковывается в корень раздела (диска) по выбору пользователя... Или я чего-то не понял?
"Батник и SFX-файл должны быть в одной папке" - так, что в итоге запускать пользователю?

megaloman 16-01-2020 14:53 2905310

Цитата:

Цитата SergioBS
"Set "BoxIn=winsoft" -здесь задаётся имя папки, куда распаковывается SFX" - SFX распаковывается в корень раздела (диска) по выбору пользователя »

Это совершенно справедливо. Однако, как взять в батнике имя папки, которую распаковал SFX? Есть идеи? Если Вы делаете SFX стандартным образом, то Вы это знаете и способны сообщить это батнику, а уж батник либо сам определит диск, либо даст возможность его выбрать.
Цитата:

Цитата SergioBS
"Батник и SFX-файл должны быть в одной папке" - так, что в итоге запускать пользователю? »

А я откуда знаю? Если SFX после отработки запускает батник, то SFX (в батнике закомментировать запуск SFX). Если батник внутри SFX и появится после распаковки, то не ясно, откуда Вы этот батник будете запускать - диск неизвестен, из работы SFX я его вытянуть не берусь.
Если батник запускает SFX, то ответ очевиден.
Кстати, если SFX способен распаковать батник в %Tmp%, определенный в переменных среды системы, то батник прекрасно можно запустить и оттуда.
А если Вас не напрягает руками делать список удаляемых папок, то и батник с их удалением корректировать Вам не проблема.
Оставил только выбор/определение диска. Можно, конечно, сделать текстовый файл с полными путями без диска, и в батнике сделать его чтение (определение диска всё равно придется оставлять).
Код:

@Echo Off
cls
        Set "Box=winsoft"
        Call :SeleDisk "D" ||Exit /B %Errorlevel%

Set "R=%D%:\%Box%\Windows\"
2>nul RD /S /Q "%R%StartIsBack AiO v1.0.17"
2>nul RD /S /Q "%R%StartIsBack AIO v1.0.18"
2>nul RD /S /Q "%R%TeamViewer v15.1.3937"

Set "R=%D%:\%Box%\Антивирусы\"
2>nul RD /S /Q "%R%Windows Firewall Control v6.0.2.0"
2>nul RD /S /Q "%R%Windows Firewall Control v6.1.0.0"

Set "R=%D%:\%Box%\Графика\"
2>nul RD /S /Q "%R%Athentech Perfectly Clear workbench v3.9.0.1710"
2>nul RD /S /Q "%R%Perfectly Clear v3.9.0.1722"
2>nul RD /S /Q "%R%WinSnap v5.1.6"
2>nul RD /S /Q "%R%WinSnap v5.1.7"

Set "R=%D%:\%Box%\Интернет\"
2>nul RD /S /Q "%R%Viber v12.1.0.29"
2>nul RD /S /Q "%R%viber v12.2.0.54"

Set "R=%D%:\%Box%\Мультимедиа\"
2>nul RD /S /Q "%R%EZ CD Audio Converter v9.0.5.1"
2>nul RD /S /Q "%R%EZ CD Audio Converter v9.0.7.1"
2>nul RD /S /Q "%R%MKVToolNix v42.0.0"
2>nul RD /S /Q "%R%VidCoder v5.13"
2>nul RD /S /Q "%R%VidCoder v5.14"

Set "R=%D%:\%Box%\Офис\"
2>nul RD /S /Q "%R%VueScan v9.7.18"
2>nul RD /S /Q "%R%VueScan v9.7.20"

Set "R=%D%:\%Box%\Утилиты\"
2>nul RD /S /Q "%R%PrivaZer v3.0.85"
2>nul RD /S /Q "%R%PrivaZer v3.0.86"
2>nul RD /S /Q "%R%Windows 10 Manager v3.1.9"
2>nul RD /S /Q "%R%Windows 10 Manager v3.2.0"
2>nul RD /S /Q "%R%Z-Info v1.0.18"
2>nul RD /S /Q "%R%z-info v1.0.19"

Exit /B

:SeleDisk
SetLocal
        Set "SpisD="
        Set /A N=1
        Set "@@D%N%=A"
        FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
                If Exist "%%i:\%Box%" (
                        Call Set /A N+=1
                        Call Set "@@D%%N%%=%%i"
                        Call Set "SpisD=%%SpisD%%%%i"
                )
        )
        If %N%==2 (EndLocal &Set "%~1=%@@D2%" &Exit /B 0)
        Echo ===========================================================
        Echo Select output disk
        Echo.
        CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
        If %Errorlevel%==1 Exit /B 3

        Call Set "DDD=%%@@D%ErrorLevel%%%"
        Echo ===========================================================
EndLocal &Set "%~1=%DDD%"
Exit /B 0


SergioBS 16-01-2020 16:58 2905330

megaloman,
SFX WinRAR не смог запустить delfolders.bat. работает из корня любого диска, с рабочего стола не работает. Кодировка какая должна быть у bat?

megaloman 16-01-2020 17:07 2905333

Цитата:

Цитата SergioBS
Кодировка какая должна быть у bat? »

По умолчанию - 866.
Цитата:

Цитата SergioBS
работает из корня любого диска »

Что работает, что значит, не смог запустить?

SergioBS 16-01-2020 17:41 2905338

megaloman,
Был какой-то глюк, Все, решение работоспособное!
Кодировка Win 866 все верно?


Нет не работает, не удаляет каталоги из папок с русскими названиями. Из папки Windows без вопросов.
попробовал переименовать каталог Антивирусы в Antivir, прописал в батник - не работает. Обрабатывает почему-то только первый каталог windows :(
Печалька...

Поменял местами каталоги в батнике

Чудеса... С папкой Windows работает, с папкой Antivir не работает.

Если раньше скрипт запрашивал букву диска, сейчас нет, так задумано в последнем скрипте?
Пробовал вытаскивать флешку, нет не работает....

SergioBS 16-01-2020 19:37 2905355

Вложений: 1
megaloman,
Файл 160088
Нет, Ваши скрипты тоже не работают, чистят только папку Windows
Это может быть связано с большим кол-вом дисков? Скрипт работает секунду, может не успевает все отработать?

Может Dr.Web забивает...
Нет, на виртуалке WIN7x64 тоже самое, не понимаю... обработка идет только в папке Windows (спокойно удаляет папки StartIsBack AIO), в папке антивирусы не удаляет каталог Windows Firewall Control v6.1.0.0 и все тут... Листинг делала программа Directory Lister v2.34, в ручную ничего не забивалось, каталоги в батнике верно прописаны.

megaloman 16-01-2020 20:25 2905359

Вложений: 1
SergioBS, ОМ МАНИ ПАДМЕ ХУМ! Я виновен и подлежу расстрелу! Надо везде заменить
%D%\ на %D%:\
Прилагаю архив с исправленным
Человеческий фактор, сэр!
Цитата:

Цитата SergioBS
Если раньше скрипт запрашивал букву диска, сейчас нет, так задумано в последнем скрипте? »

У Вас на компьютере несколько дисков. Скрипт ищет в корне каждого папку, которую Вы определили: winsoft
Если такая папка только на одном диске, диалог выбора диска не появляется - зачем?

SergioBS 16-01-2020 20:52 2905362

megaloman, Тестирую, мой тибетский ДРУГ!
"Я виновен и подлежу расстрелу!" - Ты как мой друг детства! Под 180КГ "Хочешь жрать землю буду... Прости... ЕСЛИ СМОЖЕШЬ" :) . Ну а с мало известными людьми мужского пола: "До свидания, целую нежно... :) Вводит в стопор многих.. Главное лицо очень серьезное... Типа смотреть в глаза "своей" и говорить: "Не улыбаться..." Рассмешил +1 в карму!
Виноват отвлекли... Да Вы кудесник! megaloman. Все работает.

Скрипт работает секунду! Считаю тему "Решено"


Время: 13:00.

Время: 13:00.
© OSzone.net 2001-