![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Обновления информации на USB (разделе HDD) |
|
CMD/BAT - Обновления информации на USB (разделе HDD)
|
Новый участник Сообщения: 45 |
Встал вопрос, как организовать обновления для USB диска (вес 32Gb) - перекачивать все целиком ни каждый захочет...
Рассматриваю вариант: 1. SFX WinRAR, который будет на нужный usb (или раздел HDD, буква у всех своя, самостоятельно указав в корень раздела) - распаковывать каталоги c новыми версиями программ. Но как быть со старыми каталогами? Думаю можно решить этот вопрос bat(cmd) файлом, что бы он удалял каталоги со всем содержимым и списком из разных директорий, после распаковки запускать средствами sfx - bat(cmd) из корня Flash. Но есть как минимум два вопроса... Названия каталогов на русском и пробелы в названиях. Не подумал сразу над структурой диска. Весь софт находится в папке winsoft (в корне диска) в ней рубрики, в ней папки с программами названия которых имеют пробелы. Пример USB:\winsoft\Графика\WinSnap v5.1.6 - там файлы и возможно каталоги, которые нужно потом удалять, после распаковки новых версий. Нужна помощь! |
|
------- Отправлено: 10:51, 13-01-2020 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SergioBS:
|
|
Отправлено: 16:49, 15-01-2020 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Iska,
AutoPlay Media Studio - Я не знаком с этой программой, оболочка делалась в другой программе. Кто нибудь здесь может помочь с моим вопросом? Скрипт или маленькая программка разницы нет. |
------- Отправлено: 17:29, 15-01-2020 | #32 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать SergioBS, я знаком и с другими. Проблема в том, что если нет внутреннего языка, хотя бы мало-мальского — за такие оболочки и браться не стоит, одни только очередные свистоперделки на выходе получатся. В этом отношении AutoPlay Media Studio со своим Lua — хоть что-то более-менее вменяемое, нежели набор рюшечек.
|
Отправлено: 17:35, 15-01-2020 | #33 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать 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
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 этот выбор будет подсвечен автоматически |
------- Последний раз редактировалось megaloman, 15-01-2020 в 21:58. Отправлено: 21:46, 15-01-2020 | #34 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать megaloman, Спасибо, уже понятнее в скрипте. Нужно тестить и общаться.
Наколько я понял upd.bat нельзя просто кинуть в SFX и там его исполнить? На нужном разделе... |
------- Отправлено: 10:13, 16-01-2020 | #35 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата SergioBS:
Цитата megaloman:
Доработка касается только одной процедуры - замените старую на приведенную здесь
: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 |
||
------- Отправлено: 13:33, 16-01-2020 | #36 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать megaloman,
Вы пишите: "Set "BoxIn=winsoft" -здесь задаётся имя папки, куда распаковывается SFX" - SFX распаковывается в корень раздела (диска) по выбору пользователя... Или я чего-то не понял? "Батник и SFX-файл должны быть в одной папке" - так, что в итоге запускать пользователю? |
------- Последний раз редактировалось SergioBS, 16-01-2020 в 14:13. Отправлено: 14:00, 16-01-2020 | #37 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата SergioBS:
Цитата SergioBS:
Если батник запускает 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 |
||
------- Последний раз редактировалось megaloman, 16-01-2020 в 20:17. Причина: Исправил ошибку: заменил %D%\ на %D%:\ Отправлено: 14:53, 16-01-2020 | #38 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать megaloman,
SFX WinRAR не смог запустить delfolders.bat. работает из корня любого диска, с рабочего стола не работает. Кодировка какая должна быть у bat? |
------- Отправлено: 16:58, 16-01-2020 | #39 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось megaloman, 16-01-2020 в 18:09. Отправлено: 17:07, 16-01-2020 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] После обновления драйвера Nvidia, место на системном разделе уменьшилось на 6Гб | darthvedar | Microsoft Windows 7 | 3 | 23-09-2014 04:50 | |
Разное - Потеря данных на разделе hdd | IDimon | Накопители (SSD, HDD, USB Flash) | 1 | 22-05-2012 14:51 | |
Flash - Загрузка из vhd на разделе ext3 (программа для USB) | Ilya21 | Программное обеспечение Linux и FreeBSD | 0 | 08-03-2012 08:42 | |
HDD - Гарантированно убить носитель информации на HDD. | __sa__nya | Накопители (SSD, HDD, USB Flash) | 27 | 07-08-2008 15:00 | |
При продолжении установки ошибка обновления информации о разделах на диске | Dj-XGT | Хочу все знать | 21 | 08-11-2007 05:45 |
|