4.3.1 Installation per Skript für Version 30 (SP2024)
Hier ist ein Beispiel für eine einfache Batch-Datei, die Version 30 (SP2024) aus dem vorhandenen Update-Ordner installiert, ohne die bereits installierte Version zu prüfen. Der Update-Ordner kann durch das Offline-Setup bestückt werden: Mit Katalogen, cadworkprofil und userprofil.
Im nachstehenden Skript wird bei einigen Modulen das Vorhandensein im Update-Ordner nicht geprüft. Der Grund dafür ist, dass deren Installation obligatorisch ist und die ausführbaren Dateien bei einem Standard-Update automatisch heruntergeladen werden und somit im Offline-Setup vorhanden sind.
@ECHO off
:: Variable definitions.
:: Date and time definition.
SET YEAR=%DATE:~6,4%
SET MONTH=%DATE:~3,2%
SET DAY=%DATE:~0,2%
SET HOUR=%TIME:~0,2%
SET MINUTES=%TIME:~3,2%
:: cadwork variable definitions.
:: The client number, like the language, are essential for installation.
:: A wrong number causes installation or licensing errors.
:: The chosen language will impact the catalogs to be installed.
:: Contact cadwork support if needed.
SET UPDATE=FALSE
SET REMOVE=FALSE
SET VERSION=30.0
SET CLIENTNUMBER=04.12345.0
SET LANGUAGE=french
:: Network paths must be in UNC format.
SET CADWORKDIR=%programfiles%\cadwork.dir
SET UPDATEDIR=\\srv001\public\cadwork\update
SET USERPROFILEDIR=\\srv001\public\cadwork\userprofil_%VERSION:~0,2%
SET USERCATALOGDIR=\\srv001\public\cadwork\cadwork.cat
:: Log file location.
SET INSTALLLOGDIR=\\srv001\public\cadwork\Logs_dir
:: Log file definition with date and time in the desired format.
SET LOGFILE=%INSTALLLOGDIR%\%YEAR%_%MONTH%_%DAY%_%HOUR%_%MINUTES%.txt
:: Calls the main script "main" and redirects standard outputs and
:: errors to the log file.
CALL :main > %LOGFILE% 2>&1
:: End of script
:end
PAUSE
ECHO Installation finished. We wish you a good use!
GOTO EOF
:: Uninstallation
if %REMOVE%==TRUE goto :REMOVE
:main
ECHO %DATE% - %TIME% - SCRIPT START
:: Module installation (First installation and update).
:: Program part.
:: At the root of the %CADWORKDIR% folder.
:: Ci-Start program.
IF EXIST "%UPDATEDIR%\EXE\cadwork_CI-Start_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_CI-Start_%VERSION%_x64.exe" /dir="%CADWORKDIR%" /verysilent
ECHO ci_start - Installation finished
) ELSE (
ECHO The Ci-Start installer, which is a mandatory component, is missing
)
:: Ci-Com module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_CI-COM_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_CI-COM_%VERSION%_x64.exe" /dir="%CADWORKDIR%" /verysilent
ECHO Ci-Com - Installation finished
) ELSE (
ECHO Ci-Com - Installer not found
)
:: Subfolder per cadwork version.
:: 2D module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_2D_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_2D_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO 2D module - Installation finished
) ELSE (
ECHO 2D module - Installer not found
)
:: 2DV module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_2DV_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_2DV_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO 2DV module - Installation finished
) ELSE (
ECHO 2DV module - Installer not found
)
:: 3D module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_3D_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_3D_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO 3D module - Installation finished
) ELSE (
ECHO 3D module - Installer not found
)
:: Database module (3D textures and metal profiles).
IF EXIST "%UPDATEDIR%\EXE\cadwork_Database_%VERSION%.exe" (
"%UPDATEDIR%\EXE\cadwork_Database_%VERSION%.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Database module - Installation finished
) ELSE (
ECHO Database module - Installer not found
)
:: cadwork Conception module (also called Lexocad).
IF EXIST "%UPDATEDIR%\EXE\cadwork_Lexocad_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Lexocad_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Cadwork Conception module - Installation finished
) ELSE (
ECHO Cadwork Conception module - Installer not found
)
:: List module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_List_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_List_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO List module - Installation finished
) ELSE (
ECHO List module - Installer not found
)
:: LxSDK module (Some mandatory libraries).
IF EXIST "%UPDATEDIR%\EXE\cadwork_LxSDK_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_LxSDK_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO LxSDK module - Installation finished
) ELSE (
ECHO LxSDK module - Installer not found - Mandatory libraries for 3D are missing
)
:: Pclib module (Libraries common to all modules).
IF EXIST "%UPDATEDIR%\EXE\cadwork_Pclib_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Pclib_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Pclib module - Installation finished
) ELSE (
ECHO Pclib module - Installer not found - Mandatory libraries for all modules are missing
)
:: Optipanel module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_OptiPanel_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_OptiPanel_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO OptiPanel - Installation finished
) ELSE (
ECHO OptiPanel - Installer not found
)
:: Subfolder per cadwork version - Subfolder "PI" - License dependent module.
:: Lamel module (For glulam manufacturers).
:: This module may not be present as it depends on the client number.
IF EXIST "%UPDATEDIR%\EXE\cadwork_Lamel_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Lamel_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Lamel - Installation finished
) ELSE (
ECHO Lamel - Installer not found
)
:: Subfolder per cadwork version - cadwork modules existing up to version 26 inclusive.
:: 2DM module.
IF EXIST "%UPDATEDIR%\EXE\cadwork_2DM_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_2DM_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO 2DM - Installation finished
) ELSE (
ECHO 2DM - Installer not found
)
:: Connect module (directly implemented in the "Window -> Leica Toolbar" menu).
IF EXIST "%UPDATEDIR%\EXE\cadwork_Connect_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Connect_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Connect - Installation finished
) ELSE (
ECHO Connect - Installer not found
)
:: Lexoview module.
:: Replaced by WebViewer export (HTML format) or by BIMTeam (Web solution hosted at cadwork).
IF EXIST "%UPDATEDIR%\EXE\cadwork_Lexoview_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Lexoview_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Lexoview - Installation finished
) ELSE (
ECHO Lexoview - Installer not found
)
:: Subfolder per cadwork version - Module for road engineers (Civil engineering).
IF EXIST "%UPDATEDIR%\EXE\cadwork_2DR_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_2DR_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO 2DR - Installation finished
) ELSE (
ECHO 2DR - Installer not found
)
:: cadwork and cadworkprofil catalogs (First installation and update).
:: According to a fixed folder defined by cadwork (cannot be changed by the user).
:: Architecture catalogs.
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\architecture_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\architecture_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Architecture catalogs - Installation finished
) ELSE (
ECHO Architecture catalogs - Installer not found
)
:: Plugins created by Cadwork (cadworkprofil).
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\cadworkprofil_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\cadworkprofil_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Cadworkprofil - Installation finished
) ELSE (
ECHO Cadworkprofil - Installer not found
)
:: 2D catalogs.
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\catalog_2d_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\catalog_2d_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO 2D catalogs - Installation finished
) ELSE (
ECHO 2D catalogs - Installer not found
)
:: 3D catalogs.
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\catalog_3d_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\catalog_3d_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO 3D catalogs - Installation finished
) ELSE (
ECHO 3D catalogs - Installer not found
)
:: cadwork manuals.
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\manual_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\manual_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO cadwork manuals - Installation finished
) ELSE (
ECHO cadwork manuals - Installer not found
)
:: Version news.
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\news_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\news_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO News - Installation finished
) ELSE (
ECHO News - Installer not found
)
:: Variant catalogs (parametric catalog files).
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\variant_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\variant_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Variant catalogs - Installation finished
) ELSE (
ECHO Variant catalogs - Installer not found
)
:: Video catalogs (links to training videos on YouTube, Vimeo or other online platforms).
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\videos_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\videos_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Video catalogs - Installation finished
) ELSE (
ECHO Video catalogs - Installer not found
)
:: Userprofil (here on the network and should not be installed by each client).
IF EXIST "%USERPROFILEDIR%" (
ECHO userprofil already installed
) ELSE (
"%UPDATEDIR%\CAT\%LANGUAGE%\userprofil_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /dir="%USERPROFILEDIR%" /verysilent
ECHO Userprofil - Installation finished
)
ECHO Installation finished
ECHO %DATE% - %TIME% - SCRIPT END
PAUSE
:: The update is finished here.
:: This batch is not intended for an update.
:: That's why, if the %UPDATE% variable is set to "TRUE", nothing will happen.
IF %UPDATE%==TRUE GOTO EOF
:: For the first installation:
:: - Save the client number.
ECHO %CLIENTNUMBER% > "%CADWORKDIR%\CLIENT_NR.TXT"
:: - VCRedist is mandatory, DirectX 9c may need to be installed manually.
"%CADWORKDIR%\exe_%VERSION:~0,2%\pclib.x64\redist\vcredist_x64\vcredist2015-2022_x64.exe" /install /quiet /norestart
:: - Create shortcuts and registry entries by the cadwork start.
"%CADWORKDIR%\ci_start.exe" /INSTALL /SILENT /USP="%USERPROFILEDIR%" /CATDIR="%USERCATALOGDIR%" /DownloadDir="%UPDATEDIR%" /USER_HOLZ
IF NOT EXIST "%PROGRAMDATA%\Firebird\" MKDIR "%PROGRAMDATA%\Firebird"
PAUSE
GOTO EOF
:: Delete a local installation.
:: - %UPDATEDIR%, %USERPROFILEDIR% and %USERCATALOGDIR% are located on the network and are therefore not deleted here.
:REMOVE
IF EXIST "%CADWORKDIR%\ci_start.exe" "%CADWORKDIR%\ci_start.exe" /UNINSTALL /SILENT
IF EXIST "%CADWORKDIR\%" RMDIR /s /q "%CADWORKDIR%"
IF EXIST "%PROGRAMDATA%\cadwork\" RMDIR /s /q "%PROGRAMDATA%\cadwork"
IF EXIST "%PROGRAMDATA%\Firebird\" RMDIR /s /q "%PROGRAMDATA%\Firebird"
IF EXIST "%Public%\documents\cadwork\" RMDIR /s /q "%Public%\documents\cadwork"
IF EXIST "%AppData%\cadwork\" RMDIR /s /q "%AppData%\cadwork"
Pause