4.3.2 Installazione basata su script per la versione v30 SP2024
Ecco un esempio di semplice file batch, senza verificare la versione già installata, per installare la versione 30 SP2024 dalla cartella di aggiornamento già esistente. Questa cartella di aggiornamento può essere fornita dal setup offline: Con cataloghi, cadworkprofil e userprofil.
Nello script qui sotto, per alcuni moduli, la presenza nella cartella non viene verificata. Il motivo è che la loro installazione è obbligatoria e gli eseguibili vengono scaricati automaticamente durante un aggiornamento classico e sono presenti nel setup offline.
@ECHO off
:: Forza la codifica UTF-8 per l'output (Windows 10+)
chcp 65001
:: Definizione delle variabili
:: Definizione di data e ora
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%
:: Messaggi ripetitivi
SET installModulesFinished=Installazione terminata
SET exeFileNotFound=File eseguibile non trovato
:: Definizione delle variabili cadwork
:: Il numero cliente così come la lingua sono fondamentali per l'installazione.
:: Un numero errato causa errori di installazione o di licenza.
:: La lingua scelta influisce sui cataloghi da installare.
:: Contattare il supporto cadwork se necessario.
SET update=FALSE
SET remove=FALSE
SET version=30.0
SET clientNumber=04.12345.0
SET language=italian
:: Directory di installazione di cadwork. Non dovrebbe mai essere modificata senza consultare il supporto cadwork.
SET cadworkDir=%programfiles%\cadwork.dir
:: I percorsi di rete devono essere necessariamente in formato UNC.
:: Definizione di una base per i percorsi delle cartelle
SET basePath=D:\cadwork
SET updateDir=%basePath%\update
SET userprofileDir=%basePath%\userprofil_%version%
SET userCatalogDir=%basePath%\cadwork.cat
SET installLogDir=%basePath%\logs-dir
:: Creazione delle cartelle se non esistenti
IF NOT EXIST "%updateDir%" (
MKDIR "%updateDir%"
)
IF NOT EXIST "%userprofileDir%" (
MKDIR "%userprofileDir%"
)
IF NOT EXIST "%userCatalogDir%" (
MKDIR "%userCatalogDir%"
)
IF NOT EXIST "%installLogDir%" (
MKDIR "%installLogDir%"
)
:: Definizione del file di log con data e ora nel formato desiderato
SET logFile=%installLogDir%\%year%_%month%_%day%_%hour%_%minutes%.txt
:: Chiamata allo script principale "main" e reindirizzamento degli output standard e degli errori
:: al file di log.
CALL :main > "%logFile%" 2>&1
:: Fine dello script
PAUSE
ECHO %installModulesFinished%. Vi auguriamo buon utilizzo.
GOTO :EOF
:: Disinstallazione
if %remove%==TRUE goto :REMOVE
:main
ECHO %DATE% - %hour%:%minutes% - INIZIO SCRIPT
:: Installazione dei moduli (Prima installazione e aggiornamento)
:: Parte programma
:: Nella radice della cartella cadworkDir
:: Programma 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 L'installer di Ci-Start, componente obbligatorio, è mancante
)
:: Modulo 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%
)
:: Sottocartella per versione cadwork
:: Modulo 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 Modulo 2D - %exeFileNotFound%
)
:: Modulo 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 Modulo 2DV - %exeFileNotFound%
)
:: Modulo 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 Modulo 3D - %exeFileNotFound%
)
:: Modulo Database (Texture 3D e profili metallici)
IF EXIST "%updateDir%\EXE\cadwork_Database_%version%.exe" (
"%updateDir%\EXE\cadwork_Database_%version%.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
ECHO Modulo Database - %installModulesFinished%
) ELSE (
ECHO Modulo Database - %exeFileNotFound%
)
:: Modulo Cadwork Conception (chiamato anche Lexocad)
IF EXIST "%updateDir%\EXE\cadwork_Lexocad_%version%_x64.exe" (
"%updateDir%\EXE\cadwork_Lexocad_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
ECHO Modulo Cadwork Conception - %installModulesFinished%
) ELSE (
ECHO Modulo Cadwork Conception - %exeFileNotFound%
)
:: Modulo Lista
IF EXIST "%updateDir%\EXE\cadwork_List_%version%_x64.exe" (
"%updateDir%\EXE\cadwork_List_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
ECHO Modulo Lista - %installModulesFinished%
) ELSE (
ECHO Modulo Lista - %exeFileNotFound%
)
:: Modulo LxSDK (alcune librerie obbligatorie)
IF EXIST "%updateDir%\EXE\cadwork_LxSDK_%version%_x64.exe" (
"%updateDir%\EXE\cadwork_LxSDK_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
ECHO Modulo LxSDK - %installModulesFinished%
) ELSE (
ECHO Modulo LxSDK - %exeFileNotFound% - Librerie obbligatorie per il 3D mancanti
)
:: Modulo Pclib (librerie comuni a tutti i moduli)
IF EXIST "%updateDir%\EXE\cadwork_Pclib_%version%_x64.exe" (
"%updateDir%\EXE\cadwork_Pclib_%version%_x64.exe" /dir="%cadworkDir%\EXE_%version%" /verysilent
ECHO Modulo Pclib - %installModulesFinished%
) ELSE (
ECHO Modulo Pclib - %exeFileNotFound% - Librerie obbligatorie per tutti i moduli mancanti
)
:: Modulo OptiPanel
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 Modulo Lista - %exeFileNotFound%
)
:: Sottocartella per versione cadwork - sottocartella "PI" - modulo dipendente da licenza.
:: Modulo Lamel (per produttori di legno lamellare)
:: Questo modulo potrebbe non essere presente perché dipende dal numero cliente.
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%
)
:: Cataloghi cadwork e cadworkprofil (prima installazione e aggiornamento)
:: Cartella fissa definita da cadwork (non modificabile dall'utente)
:: Cataloghi Architettura
IF EXIST "%updateDir%\CAT\%language%\architecture_%language%_%clientNumber:~0,2%_%version%.exe" (
"%updateDir%\CAT\%language%\architecture_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
ECHO Cataloghi Architettura - %installModulesFinished%
) ELSE (
ECHO Cataloghi Architettura - %exeFileNotFound%
)
:: Plugin creati da 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 - %installModulesFinished%
) ELSE (
ECHO Cadworkprofil - %exeFileNotFound%
)
:: Cataloghi 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 Cataloghi 2D - %installModulesFinished%
) ELSE (
ECHO Cataloghi 2D - %exeFileNotFound%
)
:: Cataloghi 3D
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 Cataloghi 3D - %installModulesFinished%
) ELSE (
ECHO Cataloghi 3D - %exeFileNotFound%
)
:: Manuali cadwork
IF EXIST "%updateDir%\CAT\%language%\manual_%language%_%clientNumber:~0,2%_%version%.exe" (
"%updateDir%\CAT\%language%\manual_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
ECHO Manuali cadwork - %installModulesFinished%
) ELSE (
ECHO Manuali cadwork - %exeFileNotFound%
)
:: Novità della versione
IF EXIST "%updateDir%\CAT\%language%\news_%language%_%clientNumber:~0,2%_%version%.exe" (
"%updateDir%\CAT\%language%\news_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
ECHO Novità - %installModulesFinished%
) ELSE (
ECHO Novità - %exeFileNotFound%
)
:: Cataloghi Varianti (file cataloghi parametrici)
IF EXIST "%updateDir%\CAT\%language%\variant_%language%_%clientNumber:~0,2%_%version%.exe" (
"%updateDir%\CAT\%language%\variant_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
ECHO Cataloghi Varianti - %installModulesFinished%
) ELSE (
ECHO Cataloghi Varianti - %exeFileNotFound%
)
:: Cataloghi video (link a video di formazione su YouTube, Vimeo o altre piattaforme online)
IF EXIST "%updateDir%\CAT\%language%\videos_%language%_%clientNumber:~0,2%_%version%.exe" (
"%updateDir%\CAT\%language%\videos_%language%_%clientNumber:~0,2%_%version%.exe" /verysilent
ECHO Cataloghi video - %installModulesFinished%
) ELSE (
ECHO Cataloghi video - %exeFileNotFound%
)
:: Userprofil (qui in rete e non deve essere installato da ogni client)
IF EXIST "%userprofileDir%" (
ECHO userprofil già installato
) ELSE (
"%updateDir%\CAT\%language%\userprofil_%language%_%clientNumber:~0,2%_%version%.exe" /dir="%userprofileDir%" /verysilent
ECHO Userprofil - %installModulesFinished%
)
ECHO %installModulesFinished%
ECHO FINE SCRIPT
PAUSE
:: L'installazione termina qui.
:: Questo batch non è previsto per un aggiornamento.
:: Se la variabile update è impostata su "TRUE", non succede nulla
IF %update%==TRUE GOTO :EOF
:: Per la prima installazione:
:: - Salvare il numero cliente
ECHO %clientNumber% > "%cadworkDir%\CLIENT_NR.TXT"
:: - VCRedist è obbligatorio, DirectX 9c potrebbe dover essere installato manualmente
"%cadworkDir%\exe_%version%\pclib.x64\redist\vcredist_x64\vcredist2015-2022_x64.exe" /install /quiet /norestart
:: - Creare collegamenti e voci di registro tramite 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
:: Rimuovere un'installazione locale
:: - updateDir, userprofileDir e userCatalogDir sono in rete e quindi non vengono eliminati qui
: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