Показать сообщение отдельно
Старый 03.09.2019, 01:03     # 3
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 382

Borland - Гад и сволочь
Есть маленькая тонкость с определением разрядности ОС: значение переменной окружения "PROCESSOR_ARCHITECTURE" зависит от разрядности командного процессора (cmd.exe). В принципе, "по умолчанию" в x64-системе cmd-скрипты запускаются именно в 64-битном cmd.exe (C:\Windows\System32\cmd.exe). Но мало ли что... К примеру, если запускать скрипт из-под 32-битного файл-менеджера (FAR, Total Commander и т.п.), то будет запущена именно 32-битный командный процессор (C:\Windows\SysWOW64\cmd.exe). Соответственно, разрядность ОС будет определена неверно...

Точно опеределить разрядность системы можно с использованием wmic:
Код:
(wmic path Win32_processor get AddressWidth| 1>nul 2>&1 find /i "64") && set "TARGETDIR=с:\Program Files (x86)\1cv8\8.3.12.1714\ExtDst" || set "TARGETDIR=с:\Program Files\1cv8\8.3.12.1714\ExtDst"
Окончательно скрипт будет выглядеть так:
Код:
@echo OFF
(wmic path Win32_processor get AddressWidth| 1>nul 2>&1 find /i "64") && (
	set "TARGETDIR=с:\Program Files (x86)\1cv8\8.3.12.1714\ExtDst" 
) || (
	set "TARGETDIR=с:\Program Files\1cv8\8.3.12.1714\ExtDst"
)

pushd "%TARGETDIR%" && goto :INSTALLED
"\\сервер\distrib\1c\v8.3\8.3.13.1644\1CEnterprise 8.msi" /qr TRANSFORMS=adminstallrelogon.mst;1049.mst DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENTFILE=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0
goto :EOF

:INSTALLED
echo Папка "%TARGETDIR%" уже существует. Выход без установки программы.
pause
goto :EOF
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий

Borland вне форума