Vorheriger Artikel
Nächster Artikel

3.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

:: Definition von Variablen
:: Definition von Datum und Uhrzeit
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%


:: Definitionen der cadwork Variablen
:: Sowohl die Kundennummer als auch die Sprache sind für die Installation notwendig. 
:: Die falsche Kundennummer führt zu Installations- oder Lizenzfehlern.
:: Die gewählte Sprache hat Auswirkungen auf die zu installierenden Kataloge.
:: Bitte wenden Sie sich bei Bedarf an den cadwork Support.

SET UPDATE=FALSE
SET REMOVE=FALSE
SET VERSION=30.0
SET CLIENTNUMBER=05.12345.0
SET LANGUAGE=german
:: Netzwerkpfade müssen im UNC-Format sein.
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

:: Definition des Speicherorts der Protokolldatei
SET INSTALLLOGDIR=\srv001\public\cadwork\Logs_dir

:: Definition der Protokolldatei mit Datum und Uhrzeit im gewünschten Format
SET LOGFILE=%INSTALLLOGDIR%\%YEAR%_%MONTH%_%DAY%_%HOUR%_%MINUTES%.txt


:: Ruft das Hauptskript "main" auf und leitet die Standardausgabe und Fehler
:: in die Protokolldatei um.
CALL :main > %LOGFILE% 2>&1
:: Ende des Skripts
PAUSE ECHO Installation abgeschlossen.
Wir wünschen Ihnen viel Spaß
GOTO EOF


:: Deinstallation
if %REMOVE%==TRUE goto :REMOVE

:main ECHO %DATE% - %TIME% - SCRIPT START

:: Modulinstallation (Erstinstallation und Update)
:: Programmteil
:: Im Stammverzeichnis des CADWORKDIR-Ordners
:: Ci-Start Programm
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 abgeschlossen
) ELSE (
ECHO Der Ci-Start Installer, eine Pflichtkomponente, fehlt)

:: Ci-Com Modul
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 abgeschlossen
) ELSE (
ECHO Ci-Com - Installer nicht gefunden)

:: Unterordner nach cadwork Version
:: Modul 2D
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 - Installation abgeschlossen
) ELSE (
ECHO Modul 2D - Installer nicht gefunden)

:: Modul 2DV
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 - Installation abgeschlossen
) ELSE (
ECHO Modul 2DV - Installer nicht gefunden)

:: Modul 3D
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 - Installation abgeschlossen
) ELSE (
ECHO Modul 3D - Installer nicht gefunden)

:: Modul Datenbank (3D-Texturen und Metallprofile)
IF EXIST "%UPDATEDIR%\EXE\cadwork_Database_%VERSION%.exe" (
"%UPDATEDIR%\EXE\cadwork_Database_%VERSION%.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Modul Datenbank - Installation abgeschlossen
) ELSE (
ECHO Modul Datenbank - Installer nicht gefunden)

:: Cadwork Design Modul (auch bekannt als Lexodad)
IF EXIST "%UPDATEDIR%\EXE\cadwork_Lexocad_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Lexocad_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Modul Cadwork Conception - Installation abgeschlossen
) ELSE (
ECHO Modul Cadwork Conception - Installer nicht gefunden)

:: Modul Liste
IF EXIST "%UPDATEDIR%\EXE\cadwork_List_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_List_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Modul Liste - Installation abgeschlossen
) ELSE (
ECHO Modul Liste - Installer nicht gefunden)

:: LxSDK Modul (einige Bibliotheken erforderlich)
IF EXIST "%UPDATEDIR%\EXE\cadwork_LxSDK_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_LxSDK_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Modul LxSDK - Installation abgeschlossen
) ELSE (
ECHO Modul LxSDK - Installer nicht gefunden - Für 3D erforderliche Bibliotheken fehlen)

:: Pclib Modul (Gemeinsame Bibliotheken für alle Module)
IF EXIST "%UPDATEDIR%\EXE\cadwork_Pclib_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Pclib_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Modul Pclib - Installation abgeschlossen
) ELSE (
ECHO Modul Pclib - Installer nicht gefunden - Obligatorische Bibliotheken für alle Module fehlen)

:: OptiPanel Modul
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 abgeschlossen
) ELSE (
ECHO OptiPanel - Installer nicht gefunden)

:: Unterordner nach cadwork Version - "PI" Unterordner - Modul abhängig von einer Lizenz
:: Modul Lamelle (Für Laminatoren, Hersteller von geklebten Laminaten)
:: Dieses Modul kann möglicherweise nicht vorhanden sein, da es von der Kundennummer abhängig ist.
IF EXIST "%UPDATEDIR%\EXE\cadwork_Lamel_%VERSION%_x64.exe" (
"%UPDATEDIR%\EXE\cadwork_Lamel_%VERSION%_x64.exe" /dir="%CADWORKDIR%\EXE_%VERSION:~0,2%" /verysilent
ECHO Lamelle - Installation abgeschlossen
) ELSE (
ECHO Lamelle - Installer nicht gefunden)

:: Unterordner nach cadwork Version - Vorhandene cadwork Module bis einschließlich Version 26
:: Modul 2DM
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 abgeschlossen
) ELSE (
ECHO 2DM - Installer nicht gefunden)

:: Connect Modul (direkt im Menü "Fenster -> Leica Toolbar" implementiert)
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 abgeschlossen
) ELSE (
ECHO Connect - Installer nicht gefunden)

:: Lexoview Modul
:: Ersetzt durch WebViewer-Export (HTML-Format) oder durch BIMTeam (von cadwork gehostete Web-Lösung)
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 abgeschlossen
) ELSE (
ECHO Lexoview - Installer nicht gefunden)

:: Unterordner nach cadwork Version - Modul für Straßenbauer (Tiefbau)
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 abgeschlossen
) ELSE (
ECHO 2DR - Installer nicht gefunden)

:: Cadwork und cadworkprofil Kataloge (Erstinstallation und Update)
:: Nach festem, von cadwork definiertem Ordner (kann vom Benutzer nicht geändert werden)
:: Architekturkataloge
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\architecture_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\architecture_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Architekturkataloge - Installation abgeschlossen
) ELSE (
ECHO Architekturkataloge - Installer nicht gefunden)

:: Plugins erstellt von 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 abgeschlossen
) ELSE (
ECHO Cadworkprofil - Installer nicht gefunden)

:: Kataloge 2D
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 Kataloge 2D - Installation abgeschlossen
) ELSE (
ECHO Kataloge 2D - Installer nicht gefunden)

:: 3D Kataloge
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 Kataloge 3D - Installation abgeschlossen
) ELSE (
ECHO Kataloge 3D - Installer nicht gefunden)

:: cadwork Manuale
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\handbuch_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\handbuch_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Manuale - Installation abgeschlossen
) ELSE (
ECHO Manuale - Installer nicht gefunden)

:: Neuheiten in dieser Version
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 abgeschlossen
) ELSE (
ECHO News - Installer nicht gefunden)

:: Variantenkataloge (parametrische Katalogdateien)
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\variant_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\variant_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Kataloge Varianten - Installation abgeschlossen
) ELSE (
ECHO Kataloge Varianten - Installer nicht gefunden)

:: Videokataloge (Links zu Schulungsvideos auf YouTube, Vimeo oder anderen Online-Plattformen)
IF EXIST "%UPDATEDIR%\CAT\%LANGUAGE%\videos_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" (
"%UPDATEDIR%\CAT\%LANGUAGE%\videos_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /verysilent
ECHO Videos - Installation abgeschlossen
) ELSE (
ECHO Videos - Installer nicht gefunden)

:: Userprofil (hier im Netzwerk und nicht von jedem Kunden zu installieren)
IF EXIST "%USERPROFILEDIR%" (
ECHO Userprofil bereits installiert
) ELSE (
"%UPDATEDIR%\CAT\%LANGUAGE%\userprofil_%LANGUAGE%_%CLIENTNUMBER:~0,2%_%VERSION%.exe" /dir="%USERPROFILEDIR%" /verysilent
ECHO Userprofil - Installation abgeschlossen)

ECHO Installation abgeschlossen

ECHO %DATE% - %TIME% - ENDE DES SCRIPTS
PAUSE
:: Die Aktualisierung ist hier abgeschlossen

:: Dieser Batch ist nicht für die Aktualisierung vorgesehen. 
:: Wenn die UPDATE-Variable auf "TRUE" gesetzt ist, wird nichts passieren
IF %UPDATE%==TRUE GOTO EOF
:: Für die Erstinstallation:
:: - Kundennummer registrieren
ECHO %CLIENTNUMBER% > "%CADWORKDIR%\CLIENT_NR.TXT"

:: - VCRedist ist zwingend erforderlich, DirectX 9c muss ggfs. manuell installiert werden
"%CADWORKDIR%\exe_%VERSION:~0,2%\pclib.x64\redist\vcredist_x64\vcredist2015-2022_x64.exe" /install /quiet /norestart

:: - Erstellen von Verknüpfungen und Registry-Einträgen über 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

:: Entfernen einer lokalen Installation
:: - UPDATEDIR, USERPROFILEDIR und USERCATALOGDIR befinden sich im Netzwerk und werden daher hier nicht entfernt
:: 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