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

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

mcintosh55 12-06-2016 05:29 2642299

Установка определенной версии Mozilla Thunderbird
 
Привет всем!!!
Код:

echo off
set VERSION=45.1
if %PROCESSOR_ARCHITECTURE% == x86 (
  set REGISTRY_KEY_NAME="HKLM\SOFTWARE\Mozilla\Mozilla Thunderbird"
) else (
  set REGISTRY_KEY_NAME="HKLM\SOFTWARE\Wow6432Node\Mozilla\Mozilla Thunderbird"
)
reg query %REGISTRY_KEY_NAME% /v CurrentVersion | find "%VERSION% (ru)"
if ERRORLEVEL 1 "\\soft\Thunderbird Setup 45.1.0.exe" -ms

В set VERSION=45.1 пишем какую версию хотим установить, при следующей перезагрузки и запуска скрипта из авто запуска скрипт устанавливает по новой приложение. Что Я делаю не так.

Iska 12-06-2016 07:27 2642304

Цитата:

Цитата mcintosh55
Что Я делаю не так. »

Для начала хотелось бы понять, что Вы хотите сделать.

mcintosh55 12-06-2016 08:45 2642308

Цитата:

Цитата Iska
Для начала хотелось бы понять, что Вы хотите сделать. »

стоит приложение Thunderbird Setup 44 - этот скрипт должен посмотреть в реестре установленную версию и если она не соответствует той которая в переменной set VERSION=45.1 инсталлировать приложение, а если версия в реестре 45.1 то ни чего не делать.

alpap 12-06-2016 10:36 2642325

Попробуйте так:
Код:

reg query %REGISTRY_KEY_NAME% /v CurrentVersion /s | find "%VERSION% (ru)" && exit/b || "\\soft\Thunderbird Setup 45.1.0.exe" -ms

mcintosh55 12-06-2016 10:43 2642326

Цитата:

Цитата alpap
Попробуйте так: »

все равно инсталлируется
Я пробую вот эту строку переделать
Код:

if %PROCESSOR_ARCHITECTURE% == x86
а то выходит фигня какая.

"AMD64" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Iska 12-06-2016 11:18 2642337

Во-первых, Вы некорректно определяете разрядность системы (хоть в данном случае это и не влияет на конечный результат). Во-вторых, Вы забыли, что значения параметров, содержащих любые «пробельные» символы, должны быть обрамлены кавычками (а в данном случае — именно так и есть). В-третьих, Вы некорректно производите сравнение: например, при установленной (и уже, кстати, присутствующей на сайте) версии 45.1.1 Ваше сравнение окажется истинным, и будет запущена установка старой версии поверх более новой. Ровно то же произойдёт и при любой более высокой установленной версии — 46.x, 47.x и т.д.

Где Вы хотите, в каких сценариях работы, использовать данный пакетный файл?

mcintosh55 12-06-2016 11:20 2642338

распространения и обновление программы средствами GPO, если просто написать скрипт установка с ключем тихой установки то каждый раз будет инсталлироваться поверх а так хотел решить вопрос, что бы не инсталлировалась только когда новая появиться. Естественно с поправкой скрипта.
set VERSION= пишем новую версию которые скачали с сайта и заменили на шаре exe новым.

mcintosh55 12-06-2016 11:37 2642340

Цитата:

Цитата Iska
Вы некорректно определяете разрядность системы »

- брал с примера http://forum.oszone.net/post-1388293.html

Код:

echo off
set VERSION=45.1.1
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
  set REGISTRY_KEY_NAME="HKLM\SOFTWARE\Mozilla\Mozilla Thunderbird"
) else (
  set REGISTRY_KEY_NAME="HKLM\SOFTWARE\Wow6432Node\Mozilla\Mozilla Thunderbird"
)
reg query %REGISTRY_KEY_NAME% /v CurrentVersion | find "%VERSION% (ru)"
if ERRORLEVEL 1 "\\soft\Thunderbird Setup 45.1.1.exe" -ms

Вот так вроде корректно заработала, главное корректно вносить номер версии установщика (set VERSION) и не забывать заменять файл на шаре.

Iska 12-06-2016 12:17 2642349

Цитата:

Цитата mcintosh55
- брал с примера http://forum.oszone.net/post-1388293.html »

Вы хотите сказать, «хотел взять». Но не взял. Но в данном случае, как я уже писал, сие не важно, поскольку x64-версии приложения всё равно нет.


Время: 09:31.

Время: 09:31.
© OSzone.net 2001-