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
:: 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=30.0
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 Modul Liste - %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 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