Имя пользователя:
Пароль:
 

Название темы: Условие IF и скобки
Показать сообщение отдельно

Новый участник


Сообщения: 22
Благодарности: 3

Профиль | Отправить PM | Цитировать


Раньше код был более примитивный, с кучей повторений, частенько при редактировании это сильно напрягало. Сейчас провёл небольшую оптимизацию, но не отрабатывает то, что приведено было выше. Весь код:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

TITLE Silent installation of applications

Set PathRoot=%~dp0
Set PathRoot=%PathRoot:~0,-1%
Set PathFile=
Set done=Done.

:: #Assing variable %version% for OS version
For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set version=%%a.%%b)
For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set major-version=%%a)

IF "%1"=="/office" (Set offver=ver16) && CLS && GOTO setupoffice
IF "%1"=="/onlysoft" (Set typesetup=onlysoft) && CLS && GOTO setupoffice

ECHO.
ECHO Startting installation script...
ECHO.

ECHO This script will install additional software
ECHO.
ECHO Are you sure to continue installation?
PAUSE
ECHO.
ECHO You really sure?
PAUSE
SET interactive=true && CLS

:setupoffice
ECHO Version OS defined - %version%
GOTO setupsofware

IF "%offver%"=="ver16" (
    IF DEFINED ProgramW6432 (
        ECHO Installing: "Microsoft Office 2016 OPK"...
        SET PathFile=Office16\setup.exe
        IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /configure %PathRoot%\Office16\configuration_x64.xml
    ) ELSE (
        ECHO.
        ECHO Installing: "Microsoft Office 2016 OPK"...
        SET PathFile=Office16\setup.exe
        IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /configure %PathRoot%\Office16\configuration.xml
    )
    ECHO Setting office setup mode to OEM
    SET PathFile=Office16\oemsetup.cmd
    IF EXIST %PathRoot%\!PathFile! CALL %PathRoot%\!PathFile!
    ECHO %done%
)

:setupsofware
IF DEFINED ProgramW6432 (
    ECHO.
    ECHO Installing: "Microsoft Visual C++ 2015 Redistributable (x64)"...
    SET PathFile=VCredist\vc_redist.x64.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /q /norestart
    ECHO %done%
) ELSE (
    ECHO.
    ECHO Installing: "Microsoft Visual C++ 2015 Redistributable (x86)"...
    SET PathFile=VCredist\vc_redist.x86.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /q /norestart
    ECHO %done%
)


rem ECHO.
rem ECHO Installing: "Adobe Flash Player ActiveX & Plugin"...
rem    SET PathFile=Adobe\install_flash_player_23_active_x.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -install
rem    SET PathFile=Adobe\install_flash_player_23_plugin.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -install
rem    SET PathFile=Adobe\install_flash_player_23_ppapi.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -install
rem ECHO %done%

rem ECHO.
rem ECHO Installing: "Adobe AIR"...
rem    SET PathFile=Adobe\AdobeAIRInstaller.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -silent
rem ECHO %done%

ECHO.
ECHO Installing: "Adobe Reader DC"...
SET PathFile=Adobe\AcroRdrDC1500720033_MUI.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /sAll /rs
SET PathFile=Adobe\AcroRdrDCUpd1502020042_MUI.msp && IF EXIST %PathRoot%\!PathFile! START /wait msiexec /update %PathRoot%\!PathFile! /qn
IF EXIST "%PUBLIC%\Desktop\Acrobat Reader DC.lnk" DEL /F /Q "%PUBLIC%\Desktop\Acrobat Reader DC.lnk"
IF EXIST "%ALLUSERSPROFILE%\Рабочий стол\Acrobat Reader DC.lnk" DEL /F /Q "%ALLUSERSPROFILE%\Рабочий стол\Acrobat Reader DC.lnk"
ECHO %done%

IF /I %major-version% LEQ 6 (
    ECHO.
    ECHO Installing: "DirectX End-User Runtimes (June 2010)"...
    SET PathFile=DirectX\directx_Jun2010_redist.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -s -sp/silent
    ECHO %done%
)

rem ECHO.
rem IF DEFINED ProgramW6432 (
rem     ECHO Installing: "Java Version (x64)"...
rem     SET PathFile=Java\jre-8u101-windows-x64.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /s
rem     ECHO %done%
rem ) 

rem ECHO Installing: "Java Version (x86)"...
rem SET PathFile=Java\jre-8u101-windows-i586.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /s
rem ECHO %done%

ECHO.
ECHO Installing: "K-Lite Codec Pack Mega"...
    SET PathFile=K-Lite\K-Lite_Codec_Pack_1265_Mega.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /verysilent /norestart /LoadInf="%PathRoot%\K-Lite\klcp_mega_unattended.ini"
ECHO %done%

IF /I %major-version% LEQ 6 (
    ECHO.
    IF DEFINED ProgramW6432 (
        ECHO Installing: "Silverlight 5 (x64)"...
        SET PathFile=Silverlight\Silverlight_x64.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /q
        ECHO %done%
    ) ELSE (
        ECHO Installing: "Silverlight 5 (x86)"...
        SET PathFile=Silverlight\Silverlight.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /q
        ECHO %done%
    )
)

ECHO.
ECHO Installing: "Skype"...
SET PathFile=Skype\SkypeSetupFull.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /VERYSILENT /NOLAUNCH /NOGOOGLE /NOSTARTUP /NOPLUGINS /LANG=ru
IF EXIST "%PUBLIC%\Desktop\Skype.lnk" DEL /F /Q "%PUBLIC%\Desktop\Skype.lnk"
IF EXIST "%ALLUSERSPROFILE%\Рабочий стол\Skype.lnk" DEL /F /Q "%ALLUSERSPROFILE%\Рабочий стол\Skype.lnk"
ECHO %done%

ECHO.
IF DEFINED ProgramW6432 (
    ECHO Installing: "WinRAR 5 (x64)"...
    SET PathFile=WinRAR\winrar-x64-540ru.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -s
    ECHO %done%
) ELSE (
    ECHO Installing: "WinRAR 5"...
    SET PathFile=WinRAR\wrar540ru && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! -s
    ECHO %done%
)

IF "%typesetup%"=="onlysoft" (GOTO end)

rem IF /I "%version%"=="6.1" (
rem     ECHO.
rem        ECHO Installing: "Microsoft Internet Explorer 11"...
rem        IF DEFINED ProgramW6432 (
rem            SET PathFile=IE11\IE11-Windows6.1-x64-ru-ru.exe && IF EXIST %PathRoot%\!PathFile! START /wait %PathRoot%\!PathFile! /quiet /closeprograms /norestart) ELSE (START /wait %PathRoot%\IE11\IE11-Windows6.1-x86-ru-ru.exe /quiet /closeprograms /norestart)
rem            ECHO Set default settings for browser:
rem            ECHO Load hive of default user
rem            reg LOAD HKU\Default %SYSTEMDRIVE%\Users\Default\NTUSER.DAT
rem            ECHO Set start with tabs from the the last session
rem            reg ADD "HKU\Default\Software\Microsoft\Internet Explorer\ContinuousBrowsing" /v Enabled /t REG_DWORD /d 1 /f
rem            ECHO Set default start page
rem            reg ADD "HKU\Default\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "http://www.ya.ru" /f
rem            ECHO Set always open pop-ups in a new tab    
rem            reg ADD "HKU\Default\Software\Microsoft\Internet Explorer\TabbedBrowsing" /v PopupsUseNewWindow /t REG_DWORD /d 2 /f
rem            ECHO Unload hive of default user
rem            reg UNLOAD HKU\Default
rem            ECHO %done%
rem         ELSE (
rem            ECHO.
rem            ECHO "Microsoft Internet Explorer 11" - your OS version %version% not compatible with package
rem    )

IF /I %major-version% LEQ 6 (
    ECHO.
    ECHO Installing: "Microsoft .NET Framework 4.6"...
    SET PathFile=dotNetFx4\NDP46-KB3045557-x86-x64-AllOS-ENU.exe
    IF EXIST %PathRoot%\!PathFile! (
        START /wait %PathRoot%\!PathFile! /q /norestart
        REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /V  "NETLangPack" /T "REG_SZ" /D "%PathRoot%\NDP46-KB3045557-x86-x64-AllOS-RUS.exe /q /norestart" /F
        ECHO %done%
    )
)

IF /I %major-version% GEQ 10 (
    ECHO.
    ECHO Changing default system settings
    ECHO.
    ECHO Turn off Let apps use my advertising ID for experiences across apps
    reg ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v Enabled /t REG_DWORD /d 0 /f
    ECHO Turn on SmartScreen Filter to check web content URLs that Windows Store apps use
    reg ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" /v EnableWebContentEvaluation /t REG_DWORD /d 1 /f
    ECHO Disable to send your device data to Microsoft
    reg ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v AllowTelemetry /t REG_DWORD /d 1 /f
    ECHO Turn off Malicious Software Reporting Tool telemetry
    reg ADD "HKLM\SOFTWARE\Policies\Microsoft\MRT" /v DontReportInfectionInformation /t REG_DWORD /d 0 /f
    ECHO  Change the level of diagnostic and usage data sent to Basic
    reg ADD "HKLM\SOFTWARE\Microsoft\Input\TIPC" /v Enabled /t REG_DWORD /d 0 /f
    ECHO  Enable Peer-to-Peer (P2P) Apps & Updates Download from More Than One Place only in local network    
    reg ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" /v DODownloadMode /t REG_DWORD /d 1 /f
    ECHO.
    ECHO Load hive of default user
    reg LOAD HKU\Default %SYSTEMDRIVE%\Users\Default\NTUSER.DAT
    ECHO Set start with tabs from the the last session
    reg ADD "HKU\Default\Software\Microsoft\Internet Explorer\ContinuousBrowsing" /v Enabled /t REG_DWORD /d 1 /f
    ECHO Set always open pop-ups in a new tab
    reg ADD "HKU\Default\Software\Microsoft\Internet Explorer\TabbedBrowsing" /v PopupsUseNewWindow /t REG_DWORD /d 2 /f
    ECHO Disable Feedback & Diagnostics
    reg ADD "HKU\Default\Software\Microsoft\Siuf\Rules" /v NumberOfSIUFInPeriod /t REG_DWORD /d 0 /f
    ECHO Hide "Task view" Button on Taskbar
    reg ADD "HKU\Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowTaskViewButton /t REG_DWORD /d 0 /f
    ECHO Turn Off App Suggestions on Start Menu
    reg ADD "HKU\Default\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SystemPaneSuggestionsEnabled /t REG_DWORD /d 0 /f
    ECHO Unload hive of default user
    reg UNLOAD HKU\Default
    ECHO.
    ECHO Done
)

:end
ECHO.
ECHO Setup is completed
IF "%interactive%"=="true" (PAUSE)
EXIT /B 0
Полагаю, что в IFe со скобками ему не нравятся двойные кавычки, но что с этим делать не знаю.

Последний раз редактировалось Emulty, 10-12-2016 в 17:00.


Отправлено: 16:53, 10-12-2016 | #3

Название темы: Условие IF и скобки