|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Оператор и\или в коде проверки наличия файлов |
|
|
CMD/BAT - [решено] Оператор и\или в коде проверки наличия файлов
|
Stalker_AleX333
Сообщения: n/a |
Народ, подскажите. Есть такая конструкция:
set "OldModsPackFiles1=Data\Flora Overhaul.esp" set "OldModsPackFiles2=Data\Player Blink Fix.esp" set "OldModsPackFiles3=Data\Realistic Ragdoll Force.esp" set "OldModsPackFiles4=Data\Static Mesh Improvement.esp" If exist "%OldModsPackFiles1% %OldModsPackFiles2% %OldModsPackFiles3% %OldModsPackFiles4%"( color C echo. echo ╔═══════════════════════════════════════════════════════════╗ echo ║ Панель управления для Silver Raven mods pack версии 1.2.7 ║ echo ╚═══════════════════════════════════════════════════════════╝ echo. echo. echo *ВНИМАНИЕ! В сборке обнаружены устаревшие файлы. Вероятно, установка или обновление до данной версии было произведено некорректно. Рекомендуется произвести полное удаление, с ручной очисткой оставшихся файлов и установить сборку заново. echo. echo. pause goto g_menu ) Что-то я погуглил и ничего. То-ли я такой тупой, то-ли лыжи не едут... |
|
Отправлено: 21:38, 23-09-2017 |
Stalker_AleX333
Сообщения: n/a |
alpap, посидел, подумал. Выходит как-то так:
С каждой версии продукта, будет устанавливаться файл Он будет находиться в %USERPROFILE%\AppData\Local\Skyrim Special Edition и его имя строго задано (при обновлении продукта, обновляется и bat-ник, проверяющий его). Но, если пользователь накосячит с установкой обновлений или поставит полную новую\старую версию поверх уже существующей (что недопустимо в моем случае), в папке окажется несколько таких файлов. Задача - найти таковые и предупредить пользователя о возможных последствиях, путем принудительного вывода соответствующего сообщения при запуске bat-ника. Ну а если вдруг файл-идентификатор не был найден вообще то тут сам бог велел подозревать возможное наличие проблем. Получается, полный алгоритм должен быть таким: После установки продукта, запускается наш bat-ник и проверяет наличие файла-идентификатора по маске Silver Raven mods pack ver.x.x.xx.id в %USERPROFILE%\AppData\Local\Skyrim Special Edition, совпадающего по названию с тем что уже задан. Если такой файл уже есть и номер версии совпадает - идем дальше. Но если что-то не так... 1. Найден только устаревший id-файл - текст с ошибкой №1 (с описанием найденной старой версии. пример писал выше. при считывании номера, смотрим только символы после ver.) 2. Актуальный id-файл и устаревший id-файл - текст с ошибкой №2 (тут бы перечислить все найденные номера версий. прим. 1.2.3, 1.2.6, и т.д.) 3. Не нашли вообще ничего - текст с ошибкой №3 Набросал что-то вроде заготовки сообщений для различных ошибок
:: Поиск файла-идентификатора сборки set "ModsPackVerID=Silver Raven mods pack ver.1.2.7.id" set "ModsPackVerIDOld=Silver Raven mods pack ver.x.x.x.id" :: - ? :: %VerID% и %VerIDOld% - ? if exist "%ModsPackVerIDOld%" ( color 0c echo. echo ╔═══════════════════════════════════════════════════════════╗ echo ║ Панель управления для Silver Raven mods pack версии 1.2.7 ║ echo ╚═══════════════════════════════════════════════════════════╝ echo. echo. echo *ВНИМАНИЕ! Обнаружен устаревший идентификатор сборки версии %VerID%. Вероятно, установка или обновление до данной версии было произведено некорректно. Рекомендуется произвести полное удаление, с ручной очисткой оставшихся файлов и установить сборку заново. echo. echo. pause ) if exist "%ModsPackVerID% %ModsPackVerIDOld%" ( color 0c echo. echo ╔═══════════════════════════════════════════════════════════╗ echo ║ Панель управления для Silver Raven mods pack версии 1.2.7 ║ echo ╚═══════════════════════════════════════════════════════════╝ echo. echo. echo *ВНИМАНИЕ! Обнаружено несколько файлов-идентификаторов сборки версий %VerID%, %VerIDOld%. Вероятно, установка или обновление до данной версии было произведено некорректно. Рекомендуется произвести полное удаление, с ручной очисткой оставшихся файлов и установить сборку заново. echo. echo. pause ) if not exist "%ModsPackVerID%" ( color 0c echo. echo ╔═══════════════════════════════════════════════════════════╗ echo ║ Панель управления для Silver Raven mods pack версии 1.2.7 ║ echo ╚═══════════════════════════════════════════════════════════╝ echo. echo. echo *ВНИМАНИЕ! Не обнаружено файла-идентификатора версии сборки. Вероятно, установка или обновление до данной версии было произведено некорректно. Рекомендуется произвести полное удаление, с ручной очисткой оставшихся файлов и установить сборку заново. echo. echo. pause ) Надеюсь, описал все нюансы. Если что - спрашивайте. Сам уже несколько раз перерабатывал варианты, чтобы пользователь не грохнул случайно файл-идентификатор. Пока это лучшее, что мне пришло в голову. Главное, чтобы bat-ник, который будет копировать файл-идентификатор (по окончании установки) успел отработать до того, как автоматически запустится основной. Я использую самораспаковывающиеся sfx архивы. |
Последний раз редактировалось Stalker_AleX333, 26-09-2017 в 00:30. Отправлено: 23:40, 25-09-2017 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Stalker_AleX333
Сообщения: n/a |
Я так понимаю тему можно закрывать? Поток благодетельной помощи иссяк?
|
Отправлено: 20:44, 28-09-2017 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Stalker_AleX333, начинайте изучать пособие «Как самому правильно создавать инсталляционные пакеты». Можете ознакомиться с Inno Setup или NSIS. Только, повторяю: сначала — теорию, потом — код.
|
Отправлено: 21:52, 28-09-2017 | #23 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Извиняюсь, запамятовал про эту тему.
Цитата Iska:
Цитата Iska:
По поводу "И/ИЛИ" - в Логическом словаре-справочнике (Н. И. Кондаков, 1975 год) уже "И/ИЛИ" приводится как практически используемая форма записи. |
||
Отправлено: 17:15, 08-10-2017 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата Busla:
Я не встречался вообще с таким написанием, как «И/ИЛИ». Ни в какой трактовке. Равным образом никогда не встречался с трактовкой «ИЛИ» как «XOR», а не «OR». Я привык, что трактовки вполне однозначны:
Цитата Busla:
Цитата Busla:
|
||||
Отправлено: 06:57, 09-10-2017 | #25 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата Iska:
это XOR - исключающее ИЛИ и сами никогда не говорили: "могу выделить время сегодня или завтра" - это тоже XOR Цитата Iska:
|
||
Отправлено: 11:21, 09-10-2017 | #26 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - проверка наличия файлов | neprotiv | Скриптовые языки администрирования Windows | 0 | 04-04-2013 22:09 | |
Глюк это или что?, Оператор ростелеком | simsa | Лечение систем от вредоносных программ | 1 | 14-01-2013 12:20 | |
VBS/WSH/JS - [решено] Проверка наличия файлов в папке | lesha73 | Скриптовые языки администрирования Windows | 2 | 17-01-2012 16:45 | |
CMD/BAT - [решено] Батник проверки наличия диска | Arsenik77 | Скриптовые языки администрирования Windows | 1 | 17-08-2011 17:41 | |
Наилучший способ проверки наличия интернета | sashadeg | AutoIt | 39 | 02-09-2010 13:35 |
|