Vorheriger Artikel
Nächster Artikel

4.3.1 Installation per Skript für Version 2025

Achtung:
Der Inhalt wurde von einer KI übersetzt.

Hier ist ein Beispiel für eine einfache Batch-Datei, die ohne Prüfung der bereits installierten Version die Version 2025 aus dem bereits vorhandenen Update-Ordner installiert. Dieser Update-Ordner kann durch das Offline-Setup bereitgestellt werden: Mit Katalogen, cadworkprofil und userprofil.

Im untenstehenden Skript wird für einige Module das Vorhandensein im Ordner nicht geprüft. Der Grund dafür ist, dass deren Installation obligatorisch ist und die ausführbaren Dateien bei einem normalen Update automatisch heruntergeladen werden und im Offline-Setup vorhanden sind.

@ECHO off 
:: Erzwinge UTF-8-Kodierung für die Ausgabe (Windows 10+)
chcp 65001

:: Variablendefinition
:: 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%
IF "%hour:~0,1%"==" " SET hour=0%hour:~1,1%
SET minutes=%TIME:~3,2%

:: Wiederkehrende Nachrichten
SET installModulesFinished=Installation abgeschlossen
SET exeFileNotFound=Ausführbare Datei nicht gefunden

:: Definition der cadwork-Variablen
:: Die Kundennummer sowie die Sprache sind für die Installation entscheidend. 
:: Eine falsche Nummer führt zu Installations- oder Lizenzfehlern.
:: Die gewählte Sprache beeinflusst die zu installierenden Kataloge.
:: Wenden Sie sich bei Bedarf an den cadwork-Support.

SET update=FALSE
SET remove=FALSE
SET version=2025
SET clientNumber=04.12345.0
SET language=german

:: Installationsverzeichnis von cadwork. Sollte ohne Rücksprache mit dem cadwork-Support nicht geändert werden.
SET cadworkDir=%programfiles%\cadwork.dir

:: Netzwerkpfade müssen unbedingt im UNC-Format sein.
:: Definition einer Basis für die Ordnerpfade
SET basePath=D:\cadwork
SET updateDir=%basePath%\update
SET userprofileDir=%basePath%\userprofil_%version%
SET userCatalogDir=%basePath%\cadwork.cat
SET installLogDir=%basePath%\logs-dir

:: Ordner erstellen, falls nicht vorhanden
IF NOT EXIST "%updateDir%" (
    MKDIR "%updateDir%"
)
IF NOT EXIST "%userprofileDir%" (
    MKDIR "%userprofileDir%"
)
IF NOT EXIST "%userCatalogDir%" (
    MKDIR "%userCatalogDir%"
)
IF NOT EXIST "%installLogDir%" (
    MKDIR "%installLogDir%"
)


:: Definition der Logdatei mit Datum und Uhrzeit im gewünschten Format
SET logFile=%installLogDir%\%year%_%month%_%day%_%hour%_%minutes%.txt


:: Aufruf des Hauptskripts "main" und Umleitung der Standard- und Fehlerausgaben
:: in die Logdatei.
CALL :main > "%logFile%" 2>&1


:: Ende des Skripts
PAUSE
ECHO %installModulesFinished%. Wir wünschen Ihnen viel Erfolg mit cadwork.
GOTO :EOF


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


:main
ECHO %DATE% - %hour%:%minutes% - START DES SKRIPTS

:: Installation der Module (Erstinstallation und Update)
:: Programmteil
:: Im Stammverzeichnis des cadworkDir
:: Programm Ci-start
IF EXIST "%updateDir%\EXE\cadwork_CI-Start_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_CI-Start_%version%_x64.exe" /dir="%cadworkDir%" /verysilent
	ECHO Ci-start - %installModulesFinished%
) ELSE (
	ECHO Das Installationsprogramm für Ci-start, eine obligatorische Komponente, fehlt
)

:: Modul Ci-Com
IF EXIST "%updateDir%\EXE\cadwork_CI-COM_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_CI-COM_%version%_x64.exe" /dir="%cadworkDir%" /verysilent
	ECHO Ci-Com - %installModulesFinished%
) ELSE (
	ECHO Ci-Com - %exeFileNotFound%
)

:: 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%" /verysilent
	ECHO 2D - %installModulesFinished%
) ELSE (
	ECHO Modul 2D - %exeFileNotFound%
)

:: Modul 2DV
IF EXIST "%updateDir%\EXE\cadwork_2DV_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_2DV_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO 2DV - %installModulesFinished%
) ELSE (
	ECHO Modul 2DV - %exeFileNotFound%
)

:: Modul 3D
IF EXIST "%updateDir%\EXE\cadwork_3D_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_3D_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO 3D - %installModulesFinished%
) ELSE (
	ECHO Modul 3D - %exeFileNotFound%
)

:: Modul Database (3D-Texturen und Metallprofile)
IF EXIST "%updateDir%\EXE\cadwork_Database_%version%.exe" (
	"%updateDir%\EXE\cadwork_Database_%version%.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO Modul Database - %installModulesFinished%
) ELSE (
	ECHO Modul Database - %exeFileNotFound%
)

:: Modul Cadwork Konzeption (auch Lexocad genannt)
IF EXIST "%updateDir%\EXE\cadwork_Lexocad_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_Lexocad_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO Modul Cadwork Konzeption - %installModulesFinished%
) ELSE (
	ECHO Modul Cadwork Konzeption - %exeFileNotFound%
)

:: Modul Liste
IF EXIST "%updateDir%\EXE\cadwork_List_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_List_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO Modul Liste - %installModulesFinished%
) ELSE (
	ECHO Modul Liste - %exeFileNotFound%
)

:: Modul LxSDK (Einige obligatorische Bibliotheken)
IF EXIST "%updateDir%\EXE\cadwork_LxSDK_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_LxSDK_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO Modul LxSDK - %installModulesFinished%
) ELSE (
	ECHO Modul LxSDK - %exeFileNotFound% - Obligatorische Bibliotheken für 3D fehlen
)

:: Modul Pclib (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%" /verysilent
	ECHO Modul Pclib - %installModulesFinished%
) ELSE (
	ECHO Modul Pclib - %exeFileNotFound% - Obligatorische Bibliotheken für alle Module fehlen
)

:: Modul OptiPanneaux
IF EXIST "%updateDir%\EXE\cadwork_OptiPanel_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_OptiPanel_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO OptiPanel - %installModulesFinished%
) ELSE (
	ECHO OptiPanel - %exeFileNotFound%
)


:: Unterordner nach cadwork-Version - Unterordner "PI" - Modul abhängig von einer Lizenz.
:: Modul Lamel (Für Lamellisten, Hersteller von Brettschichtholz)
:: Dieses Modul ist möglicherweise nicht vorhanden, da es von der Kundennummer abhängt.
IF EXIST "%updateDir%\EXE\cadwork_Lamel_%version%_x64.exe" (
	"%updateDir%\EXE\cadwork_Lamel_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
	ECHO Lamel - %installModulesFinished%
) ELSE (
	ECHO Lamel - %exeFileNotFound%
)


:: cadwork-Kataloge und cadworkprofil (Erstinstallation und Update)
:: Fester Ordnerpfad von cadwork (vom Benutzer nicht änderbar)
:: Architektur-Kataloge
IF EXIST "%updateDir%\CAT\%language%\architecture_%language%_%clientNumber:~0,2%_%version%.exe" (
	"%updateDir%\CAT\%language%\architecture_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
	ECHO Architektur-Kataloge - %installModulesFinished%
) ELSE (
	ECHO Architektur-Kataloge - %exeFileNotFound%
)

:: Von Cadwork erstellte Plugins (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 - %installModulesFinished%
) ELSE (
	ECHO Cadworkprofil - %exeFileNotFound%
)

	:: 2D-Kataloge
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-Kataloge - %installModulesFinished%
) ELSE (
	ECHO 2D-Kataloge - %exeFileNotFound%
)

:: 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 3D-Kataloge - %installModulesFinished%
) ELSE (
	ECHO 3D-Kataloge - %exeFileNotFound%
)

:: cadwork-Handbücher
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-Handbücher - %installModulesFinished%
) ELSE (
	ECHO cadwork-Handbücher - %exeFileNotFound%
)

:: Neuerungen der 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 Neuerungen - %installModulesFinished%
) ELSE (
	ECHO Neuerungen - %exeFileNotFound%
)

:: Varianten-Kataloge (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 Varianten-Kataloge - %installModulesFinished%
) ELSE (
	ECHO Varianten-Kataloge - %exeFileNotFound%
)

:: Video-Kataloge (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 Video-Kataloge - %installModulesFinished%
) ELSE (
	ECHO Video-Kataloge - %exeFileNotFound%
)


:: Userprofil (hier im Netzwerk und sollte nicht von jedem Client installiert werden)
IF EXIST "%userprofileDir%" (
	ECHO Userprofil - bereits installiert
) ELSE (
	"%updateDir%\CAT\%language%\userprofil_%language%_%clientNumber:~0,2%_%version%.exe" /dir="%userprofileDir%" /verysilent
	ECHO Userprofil - %installModulesFinished%
)
ECHO %installModulesFinished%

ECHO %DATE% - %TIME% - ENDE DES SKRIPTS
PAUSE
:: Die Installation ist hier abgeschlossen.

:: Dieses Batch ist nicht für ein Update vorgesehen. 
:: Wenn die Variable update auf "TRUE" gesetzt ist, passiert nichts
IF %update%==TRUE GOTO :EOF


:: Für die Erstinstallation :
:: - Kundennummer speichern
ECHO %clientNumber% > "%cadworkDir%\CLIENT_NR.TXT"

:: - VCRedist ist obligatorisch, DirectX 9c muss ggf. manuell installiert werden
"%cadworkDir%\exe_%version%\pclib.x64\redist\vcredist_x64\vcredist2015-2022_x64.exe" /install /quiet /norestart

:: - Verknüpfungen und Registry-Einträge durch cadwork start erstellen
"%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


:: Lokale Installation entfernen
:: - updateDir, userprofileDir und userCatalogDir befinden sich im Netzwerk und werden daher hier nicht gelöscht
: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