Sunteți pe pagina 1din 24

@echo yes

SetLocal EnableDelayedExpansion

REM //
###################################################################################
###################################################################################
###################################################################################
##############################
REM // ##### BEGIN USER CONFIG
###################################################################################
###################################################################################
###################################################################################
##
REM //
###################################################################################
###################################################################################
###################################################################################
##############################

REM // Set the base path for backups


set ARIS9BATCHES_BACKUPHOME=c:\SoftwareAG\ARIS_Backups
REM // Set a specific path, for example with the scope of the backup: "Daily,
Weekly, ..."
set ARIS9BATCHES_BACKUPTARGET=%ARIS9BATCHES_BACKUPHOME%\Daily_Backups
REM // set ARIS9BATCHES_ARISADM_EXE=AUTO will determine the installation path
automaticly by Windows Registry.
REM // instead of AUTO the path can be set manually without appended backslash.
set ARIS9BATCHES_ARISADM_EXE=AUTO
REM //set
ARIS9BATCHES_ARISADM_EXE=E:\SoftwareAG\ARIS9.6\tools\ArisAdm\arisadm90.exe
REM // set ARISHOME90=AUTO will determine the installation path automaticly by
Windows Registry.
REM // instead of AUTO the path can be set manually without appended backslash.
set ARISHOME90=AUTO

REM // Set ARIS9BATCHES_AUTO_DELETE_ENABLED=yes to delete older backups


automaticly.
REM // Only number of backups defined in %ARIS9BATCHES_NUMBER_OF_CURRENT_BACKUPS%
will stay available
set ARIS9BATCHES_AUTO_DELETE_ENABLED=yes
set ARIS9BATCHES_NUMBER_OF_CURRENT_BACKUPS=14

REM // Define Hostname or IP of ARIS 9 Connect-Server


set ARIS9BATCHES_ACCHost=localhost
REM // Define the Port
set ARIS9BATCHES_ACCPort=9001
REM // Set the username to login into ARIS9BATCHES_ACC
set ARIS9BATCHES_ACCUsername=Clous
REM // Set the concerning password
set ARIS9BATCHES_ACCPassword=g3h31m

REM // Set HTTP-URL to UMC web-service, default is: http://localhost


set ARIS9BATCHES_UMC_WEBSERVICE_URL=http://localhost
REM // Hostname of ARIS Design Server, default is: localhost
set ARIS9BATCHES_DESIGN_SERVER_HOST=localhost
REM // Port of ARIS Design Server, default is <empty>
REM // Define port as follow: :<PORT> --> :16234
set ARIS9BATCHES_DESIGN_SERVER_PORT=

REM // Define Size of APG Installation - possible valus s, m, l (default value = m)


set ARIS9BATCHES_DEPLOYMENT_SIZE_APG=l
set ARIS9BATCHES_DEPLOYMENT_SIZE_UMC=l

REM // Set the tenant that have to back up


set ARIS9BATCHES_TENANT=default
REM // Set the system user credentials - user needs the superuser-role and
architect license permissions
set ARIS9BATCHES_TENANT_SYSTEM_USER=system
set ARIS9BATCHES_TENANT_SYSTEM_PASSWORD=ITDmanager
REM // Set the tenant super user credentials
set ARIS9BATCHES_TENANT_SUPER_USER=superuser
set ARIS9BATCHES_TENANT_SUPER_PASSWORD=superuser
REM // Defines a password to encrypt exported ADBs.
set ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES=

REM // Set to yes to disable gaining of UAC permissions.


REM // disable this only of there are problems occured by executing the backup
script as schedulled task.
REM // REMARK: To run this script as schedulled task this value is set to no, the
script have to execute by the windows scheduler with the parameter "schedulled"
(without quotes).
REM // Otherwise the the schedulled task will starts but never
ends and a backup will not created!
set ARIS9BATCHES_DISABLE_GAINING_UAC_PERMISSIONS=yes

REM // Enable or disable features of this script - for experienced users only!
set ARIS9BATCHES_FEATURE_BACKUP_Default_Tenant_ENABLED=yes

set ARIS9BATCHES_FEATURE_BACKUP_ADS_COUCHDB_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_ACC_INFORMATION_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_ADB_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_SYSTEMDB_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_UMC_CFG_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_CFG_FILES_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_POSTGRES_DUMPS_ENABLED=yes
set ARIS9BATCHES_FEATURE_BACKUP_LOG_FILES_ENABLED=yes

REM // set ARIS9BATCHES_FEATURE_CreateEntireFileSystemBackup_ENABLED=yes will


backup the ARIS9 installation directory
REM // to %ARIS9BATCHES_BACKUPTARGET_FULL_DIRECTORY_BACKUP% for only one time.
There is no backup rotation. Existing Backup will
REM // overwritten. This is a temporary solution to make sure creating a entire
backup of all ARIS 9
REM // features.
REM // PLEASE MAKE SURE SERVER HAS ENOUGH DISK SPACE; MINIMUM 15 GB!
set ARIS9BATCHES_FEATURE_CreateEntireFileSystemBackup_ENABLED=yes
set ARIS9BATCHES_BACKUPTARGET_FULL_DIRECTORY_BACKUP=%ARIS9BATCHES_BACKUPHOME
%\ENTIRE

REM //
###################################################################################
###################################################################################
###################################################################################
##############################
REM // ##### END USER CONFIG
###################################################################################
###################################################################################
###################################################################################
####
REM //
###################################################################################
###################################################################################
###################################################################################
##############################

REM //
===================================================================================
==========
REM // Import user defined configuration is exists.
REM // Create a file ARIS9_Backupmanager_userconfig_<CustomerName>.bat in the same
folder as of this
REM // Script. Define inside the userconfig customer depending variables.
REM //
===================================================================================
==========

if "%1" == "multi_tenancy" (

call %2
echo %2

) ELSE (
if exist ARIS9_Backupmanager_userconfig_*.bat (
FOR /F "tokens=*" %%A IN ('dir /B
ARIS9_Backupmanager_userconfig_*.bat') DO (
REM // Import user config
REM // call %%A

echo Executing Backup with userconfig: %%A...


%0 multi_tenancy %%A
)

exit /B
)
)
REM //
===================================================================================
==========
REM // Set Batch behavior - don't change it - script doesn't work otherwise!
REM //
===================================================================================
==========
@echo off
SetLocal EnableDelayedExpansion
set ARIS9BATCHES_OUTUP2NIRVANA=1^>nul 2^>^&1

REM // !!!!!!!!!!!!!! ATTENTION: IF THIS OPTION SET TO YES THE SCRIPT CAN'T RUN AS
SCHEDULED TASK !!
REM // FEATURE IS BETA
set ARIS9BATCHES_FEATURE_ZIP_BACKUP_ENABLED=no

REM //
===================================================================================
==========
REM // Cofigure Timestamp
REM //
===================================================================================
==========
REM // DATE
set ARIS9BATCHES_TIMESTAMP_YEAR=%date:~-4,4%
set ARIS9BATCHES_TIMESTAMP_MONTH=%date:~-7,2%
set ARIS9BATCHES_TIMESTAMP_DAY=%date:~-10,2%

REM // TIME
set ARIS9BATCHES_TIMESTAMP_HH=%time:~0,2%
set ARIS9BATCHES_TIMESTAMP_MM=%time:~3,2%
set ARIS9BATCHES_TIMESTAMP_SS=%time:~6,2%
set ARIS9BATCHES_TIMESTAMP_MS=%time:~-2,2%

set ARIS9BATCHES_TIMESTAMP=%ARIS9BATCHES_TIMESTAMP_YEAR%-
%ARIS9BATCHES_TIMESTAMP_MONTH%-%ARIS9BATCHES_TIMESTAMP_DAY%_
%ARIS9BATCHES_TIMESTAMP_HH%-%ARIS9BATCHES_TIMESTAMP_MM%-%ARIS9BATCHES_TIMESTAMP_SS
%.%ARIS9BATCHES_TIMESTAMP_MS%
REM // Replace blank chars by 0 (zero)
set ARIS9BATCHES_TIMESTAMP=!ARIS9BATCHES_TIMESTAMP: =0!

REM //
===================================================================================
======================================================
REM // Enable or disable debug mode yes | no
REM //
===================================================================================
======================================================
set ARIS9BATCHES_debuggerEnabled=yes

REM //
===================================================================================
======================================================
REM // Define encryption parameter for ARIS Server Administrator
REM //
===================================================================================
======================================================
if not "%ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES%" == "" set
ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES=-p
"%ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES%"

REM //
===================================================================================
======================================================
REM // Initiate colored print procedures.
REM //
===================================================================================
======================================================
call :initColorPrint

REM //
===================================================================================
======================================================
REM // Detect variables automaticly depends on settings
REM //
===================================================================================
======================================================
set ARIS9BATCHES_fTMP=%temp%\ARIS9BATCHESBatch.tmp
if "%ARISHOME90%" == "AUTO" (
set ARIS9BATCHES_PROP_AUTODETECT_ARISHOME90=auto detected
call :setARISHOME90
) ELSE (
set ARIS9BATCHES_PROP_AUTODETECT_ARISHOME90=defined manually
)

if "%ARIS9BATCHES_ARISADM_EXE%" == "AUTO" (
set ARIS9BATCHES_PROP_AUTODETECT_ARISADM_EXE=auto detected
call :setARIS9BATCHES_ARISADM_EXE
) ELSE (
set ARIS9BATCHES_PROP_AUTODETECT_ARISADM_EXE=defined manually
)

set ARIS9BATCHES_BACKUP_NAME=%ARIS9BATCHES_TIMESTAMP%_tenant-%ARIS9BATCHES_TENANT%
set ARIS9BATCHES_BACKUPTARGETFULLPATH=%ARIS9BATCHES_BACKUPTARGET%\
%ARIS9BATCHES_BACKUP_NAME%

REM //
===================================================================================
======================================================
REM // Set basic variables
REM //
===================================================================================
======================================================
REM // set title of the batch script.
set ARIS9BATCHES_BATCHTITLE=ARIS 9 Backup Manager
REM // Set the version based exe name of ARISADM.
set ARIS9BATCHES_EXENAME=arisadm90.exe
REM // Set default params for ARISADM90.exe
set ARIS9BATCHES_ARISADM_PARAMS=-t "%ARIS9BATCHES_TENANT%" -s
%ARIS9BATCHES_DESIGN_SERVER_HOST%%ARIS9BATCHES_DESIGN_SERVER_PORT% -u
"%ARIS9BATCHES_TENANT_SYSTEM_USER%" "%ARIS9BATCHES_TENANT_SYSTEM_PASSWORD%"

REM //
===================================================================================
======================================================
REM // Set folder names
REM //
===================================================================================
======================================================
set ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB_COUCHDB=
%ARIS9BATCHES_BACKUPTARGETFULLPATH%\ADS_COUCHDB
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS=%ARIS9BATCHES_BACKUPTARGETFULLPATH%\LOGS
set ARIS9BATCHES_BACKUPTARGETFULLPATH_POSTGRES_DUMPS=
%ARIS9BATCHES_BACKUPTARGETFULLPATH%\POSTGRES_ECP_DUMP
set ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB=%ARIS9BATCHES_BACKUPTARGETFULLPATH%\ADB
set ARIS9BATCHES_BACKUPTARGETFULLPATH_SYSTEMDB=%ARIS9BATCHES_BACKUPTARGETFULLPATH
%\SYSTEMDB
set ARIS9BATCHES_BACKUPTARGETFULLPATH_UMCDATA=%ARIS9BATCHES_BACKUPTARGETFULLPATH
%\UMCDATA
set ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES=%ARIS9BATCHES_BACKUPTARGETFULLPATH
%\CFG_FILES
set ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS=%ARIS9BATCHES_BACKUPTARGETFULLPATH
%\SERVER_LOGS

REM //
===================================================================================
======================================================
REM // Set Filenames
REM //
===================================================================================
======================================================
set
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_SHOWCFG=listCurrentConfiguratio
n.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LIST=listRunnableStatus.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTNODES=listNodes.txt
set
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTEXTSVC=listExternalServices
.txt
set
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTGBLENHANCEMENTS=listGlobalE
nhancements.txt
set
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTTENANTASSIGNMENTS=listTenan
tAssignments.txt
set
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTTENANTS=listTenantAssignmen
ts.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_DBLIST=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\listADBs.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_LIST=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\_BackupScriptSettings.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_DBLIST=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\_deletedBackups.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\_Runnable_Configuration.txt
set ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS_LIST=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS%\_listOfLogFilePaths.txt

set ARIS9BATCHES_TMP_VBS_ZIPPER=%TEMP%\ARIS9BATCHES_ZIPPER.vbs
set ARIS9BATCHES_TMP_VBS_UAC=%TEMP%\ARIS9BATCHES_TMP_VBS_UAC.vbs
set ARIS9BATCHES_FILENAME_DUMMYFILE=.dummy_file_to_avoid_empty_folders

REM //
===================================================================================
======================================================
REM // Request UAC-Permissions ("RUN AS ADMINISTRATOR")
REM //
===================================================================================
======================================================
REM // Running UAC only when kbatch is running not as schedulled task. Please
attache the parameter in the scheduled task!
if not "%ARIS9BATCHES_DISABLE_GAINING_UAC_PERMISSIONS%" == "yes" (
set ARIS9BATCHES_TMP_BATCH_PARAM1=%1
if not "!ARIS9BATCHES_TMP_BATCH_PARAM1!" == "schedulled" call
:UACCheckForPermissions
)

REM //
===================================================================================
======================================================
REM // Set further environment
REM //
===================================================================================
======================================================

REM // Create folders for the current backup


call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB_COUCHDB%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_POSTGRES_DUMPS%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_SYSTEMDB%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_UMCDATA%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGET_FULL_DIRECTORY_BACKUP%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%"
call :createNoneEmptyDir "%ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS%"

REM //
===================================================================================
======================================================
REM // Checks for invalid variables that important needed.
REM //
===================================================================================
======================================================
call :fatalErrorCheckVariableIsInvalid "!ARISHOME90!" "ARISHOME90 is UNDEFINED"
call :fatalErrorCheckVariableIsInvalid "!ARIS9BATCHES_ARISADM_EXE!"
"ARIS9BATCHES_ARISADM_EXE is UNDEFINED"

REM // Set default ACC-Command


set ARIS9BATCHES_RUNACC=call "%ARISHOME90%\server\acc\acc.bat" -h
"%ARIS9BATCHES_ACCHost%" -u "%ARIS9BATCHES_ACCUsername%" -p "%ARIS9BATCHES_ACCPort
%" -pwd "%ARIS9BATCHES_ACCPassword%"

REM // Set default ARISADM-COMMAND of ARIS Design Server


set ARIS9BATCHES_RUNADM="%ARIS9BATCHES_ARISADM_EXE%" %ARIS9BATCHES_ARISADM_PARAMS%

REM // Set default y-tenantmgmt-Command


set ARIS9BATCHES_TENANTMGMT_HOME=%ARISHOME90%\server\bin\work\work_umcadmin_
%ARIS9BATCHES_DEPLOYMENT_SIZE_UMC%\tools\bin
set ARIS9BATCHES_RUNTENANTMGMT=call :tenantMGMT
set ARIS9BATCHES_RUNTENANTDUMP=call :tenantDUMP
set ARIS9BATCHES_TENANTMGMT_CREDENTIAL_PARAMS=-u %ARIS9BATCHES_TENANT_SUPER_USER%
-p %ARIS9BATCHES_TENANT_SUPER_PASSWORD%
REM //
===================================================================================
======================================================

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
REM // BEGIN SCRIPT CONTENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++

REM //
===================================================================================
======================================================
REM // Backup several information gained by ACC
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_ACC_INFORMATION_ENABLED%" == "yes" (

call :printHeadline Backup several information gained by ACC

REM // Gaining runnable configuration...


echo Gaining runnable configuration...
echo.>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
%ARIS9BATCHES_RUNACC% list>"%ARIS9BATCHES_fTMP%"
FOR /F "" %%i IN ('more "%ARIS9BATCHES_fTMP%" ^| find ":"') DO (
echo Instance Configuration of %
%i>>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
echo
------------------------------------------------------->>"%ARIS9BATCHES_BACKUPTARGE
TFULLPATH_LOGS_INSTANCE_CFG%"
%ARIS9BATCHES_RUNACC% show instance %
%i>>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
echo.>>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
echo.>>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
echo.>>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_INSTANCE_CFG%"
)
REM // END Gaining runnable configuration...

call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_SHOWCFG% "show cfg"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LIST% "list"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTNODES% "list nodes"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTEXTSVC% "list external
services"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTGBLENHANCEMENTS% "list
global enhancements"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTTENANTASSIGNMENTS% "list
tenant assignments"
call :documentACCCommandResult
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_FILENAME_ACC_LISTTENANTS% "list tenants"

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup several information gained by ACC
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_ADS_COUCHDB_ENABLED%" == "yes" (

call :printHeadline Backup ARIS Document Storage ^(CouchDB^)

xcopy /Y /R /H /G /Q /I /C /E
"%ARISHOME90%\server\bin\work\work_couchdb_m\data"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB_COUCHDB%"

call :printSuccess Finished.


call :printLine
)

REM //
===================================================================================
======================================================
REM // Backup all ARIS Databases as ADB-File
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_ADB_ENABLED%" == "yes" (
call :printHeadline Backup all ARIS Databases as ADB-File
%debug% Backup all !ARIS9BATCHES_BACKUPTARGETFULLPATH! ARIS Databases as ADB-
File
set ARIS9BATCHES_TMPCOMMAND=%ARIS9BATCHES_RUNADM% -l
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\logADB_BackupAll.txt" backup all
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB%"
%ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES%
%debug% !ARIS9BATCHES_TMPCOMMAND!
!ARIS9BATCHES_TMPCOMMAND!
!%ARIS9BATCHES_TENANT_SYSTEM_PASSWORD%!

dir /B "%ARIS9BATCHES_BACKUPTARGETFULLPATH_ADB
%\*.adb">"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_DBLIST%"

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup Tenant default
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_Default_Tenant_ENABLED%" == "yes" (
call :printHeadline Backup Default Tenant
set ARIS9BATCHES_TMPCOMMAND=%ARIS9BATCHES_RUNADM% -l
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\logADB_BackupSystemDB.acb" backupsystemdb
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_SYSTEMDB%"
%ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES%
%debug% !ARIS9BATCHES_TMPCOMMAND!
!ARIS9BATCHES_TMPCOMMAND!
call :printSuccess Finished.
call :printLine
)
REM //
===================================================================================
======================================================

ARIS9BATCHES_FEATURE_BACKUP_Default_Tenant_ENABLED=yes

REM //
===================================================================================
======================================================
REM // Backup system db
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_SYSTEMDB_ENABLED%" == "yes" (
call :printHeadline Backup system db
set ARIS9BATCHES_TMPCOMMAND=%ARIS9BATCHES_RUNADM% -l
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\logADB_BackupSystemDB.txt" backupsystemdb
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_SYSTEMDB%"
%ARIS9BATCHES_PASSWORD_TO_ENCRYPT_ADB_FILES%
%debug% !ARIS9BATCHES_TMPCOMMAND!
!ARIS9BATCHES_TMPCOMMAND!
call :printSuccess Finished.
call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup UMC Configuration and dump Data
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_UMC_CFG_ENABLED%" == "yes" (
call :printHeadline Backup UMC Configuration and dump Data
%ARIS9BATCHES_RUNTENANTMGMT% exportConfig -f
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_UMCDATA%\UMCConfig.properties"
%ARIS9BATCHES_TENANTMGMT_CREDENTIAL_PARAMS%
%ARIS9BATCHES_RUNTENANTDUMP% export -f
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_UMCDATA%\UMCData.dump"
%ARIS9BATCHES_TENANTMGMT_CREDENTIAL_PARAMS%
call :printSuccess Finished.
call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup entire ARIS 9 file system directory if enabled
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_CreateEntireFileSystemBackup_ENABLED%" == "yes" (
call :printHeadline Backup entire ARIS 9 file system directory

echo Existing files and folders will be overwritten.


xcopy /Y /R /H /G /Q /I /C /E "%ARISHOME90%"
"%ARIS9BATCHES_BACKUPTARGET_FULL_DIRECTORY_BACKUP%"

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup Config Files
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_CFG_FILES_ENABLED%" == "yes" (
call :printHeadline Backup Config Files

call :copyFiles "%ARISHOME90%\server\generated.apptypes.cfg"


"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\generated.apptypes.cfg"
call :copyFiles "%ARISHOME90%\server\configure.pt"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\configure.pt"

call :copyFiles "%ARISHOME90%\server\bin\work\work_apg_


%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\age-configuration.properties"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\work\work_apg_
%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\age-configuration.properties"
call :copyFiles "%ARISHOME90%\server\bin\work\work_apg_
%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\age-configuration-setup.properties"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\work\work_apg_
%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\age-configuration-setup.properties"
call :copyFiles "%ARISHOME90%\server\bin\work\work_apg_
%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\jaas.config"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\work\work_apg_
%ARIS9BATCHES_DEPLOYMENT_SIZE_APG%\base\config\jaas.config"

call :copyFiles "%ARISHOME90%\server\bin\agent.cfg"


"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\agent.cfg"
call :copyFiles "%ARISHOME90%\server\bin\agent.user.cfg"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\agent.user.cfg"
call :copyFiles "%ARISHOME90%\server\bin\runnables.cfg"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\bin\runnables.cfg"

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Postgres Dumps
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_POSTGRES_DUMPS_ENABLED%" == "yes" (
call :printHeadline Backup PostGres Dumps

dir /B /S "%ARISHOME90%\*pg_dump.exe" | find


"PostgreSQLECP">"%ARIS9BATCHES_fTMP%"
set /P ARIS9BATCHES_PGDUMP=<"%ARIS9BATCHES_fTMP%"

"!ARIS9BATCHES_PGDUMP!" -f "%ARIS9BATCHES_BACKUPTARGETFULLPATH_POSTGRES_DUMPS
%\postgres_ecp.dump.sql" -h localhost -U eurekastreams eurekastreams

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup all ARIS 9 Log-Files
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_BACKUP_LOG_FILES_ENABLED%" == "yes" (
call :printHeadline Backup all ARIS 9 Log-Files

xcopy /Y /S "%ARISHOME90%\*.log"
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS%"
1>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_ARIS9LOGS_LIST%" 2>&1

call :printSuccess Finished.


call :printLine
)
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Backup Script Settings - this sequence have to run as one of the last
operations.
REM //
===================================================================================
======================================================
call :printHeadline Backup ARIS 9 Backup-Script Settings
set ARIS9BATCHES>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_LIST%"
call :printSuccess Finished.
call :printLine
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Zipping the current Backup - Please disable this feature because this script
can't run as schedules task otherwise
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_FEATURE_ZIP_BACKUP_ENABLED%" == "yes" (
call :printHeadline Zipping the current Backup - Please disable this
feature because this script can't run as schedules task otherwise
call :doZIP "%ARIS9BATCHES_BACKUPTARGETFULLPATH%"
"%ARIS9BATCHES_BACKUP_NAME%"
call :printSuccess Finished.
call :printLine
)

REM //
===================================================================================
======================================================
REM // Cleanup - Remove Dummy Files:
REM //
===================================================================================
======================================================
DEL /S !ARIS9BATCHES_BACKUPTARGETFULLPATH!\*!ARIS9BATCHES_FILENAME_DUMMYFILE!
%ARIS9BATCHES_OUTUP2NIRVANA%
REM //
===================================================================================
======================================================

REM //
===================================================================================
======================================================
REM // Delete old backups - only number of defined current backups will be remain.
REM //
===================================================================================
======================================================
if "%ARIS9BATCHES_AUTO_DELETE_ENABLED%" == "yes" (

DIR /O:-D /A:-D /B /AD "%ARIS9BATCHES_BACKUPTARGET%" > "%ARIS9BATCHES_fTMP%"

FOR /F "skip=%ARIS9BATCHES_NUMBER_OF_CURRENT_BACKUPS% tokens=1" %%i IN


(%ARIS9BATCHES_fTMP%) DO (
echo Backup "%%i" was delete caused there are more than
%ARIS9BATCHES_NUMBER_OF_CURRENT_BACKUPS% Backups. >>"!
ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_DBLIST!"
RD /S /Q "%ARIS9BATCHES_BACKUPTARGET%\%%i"
)
)
REM //
===================================================================================
======================================================

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
REM // END SCRIPT CONTENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
REM // !!! A batch procedure is defined by jump marks. To avoid endless loops the
current batch running branch have to exit by exit /b - exit /b has to execute of
each procedure end.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :copyFiles
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example

Description
REM //
-----------------------------------------------------------------------------
--------------------------------------------------------
REM // %1 Source
"%ARISHOME90%\server\generated.apptypes.cfg"
Source
REM // %2 Target
"%ARIS9BATCHES_BACKUPTARGETFULLPATH_CFGFILES%\server\generated.apptypes.cfg"
Target
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:copyFiles
set copyFilesSource=%1
set copyFilesTarget=%2
set copyFilesTargetDir=%~dp2

call :createNoneEmptyDir %copyFilesTargetDir%


copy /Y /D /V /Z %copyFilesSource% %copyFilesTarget%
:endCopyFiles

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :setARISHOME90 (No Parameters)
REM // Determine the installation path of ARIS 9 server products by the registry
path of windows service "ARISCloudAgent"
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:setARISHOME90
REM // define the reg query
set
ARIS9BATCHES_regFullQuery="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Sof
tware AG ARIS 10 Agent" /v imagePath

REM // check if the command can be execute successfully. By "1>NUL 2>&1"


fatal errors and general messages will send to nirvana
REG QUERY !ARIS9BATCHES_regFullQuery! 1>nul 2>&1
If "!ERRORLEVEL!" == "1" (
set ARISHOME90=UNDEFINED
exit /B
)
REG QUERY !ARIS9BATCHES_regFullQuery! | find
"wrapper.exe">"%ARIS9BATCHES_fTMP%"

set /p ARIS9BATCHES_regQuery=<"%ARIS9BATCHES_fTMP%"
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery: =+%
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery: =+%
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery:++=+%
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery:++=+%

for /F "tokens=1,2,3,* usebackq delims=+" %%a IN ('%ARIS9BATCHES_regQuery%')


DO (

set ARISHOME90=%%c
set ARISHOME90=!ARISHOME90:\server\bin\wrapper.exe=!

if exist "%ARIS9BATCHES_fTMP%" del "%ARIS9BATCHES_fTMP%" 1>nul 2>&1

:endSetARISHOME90

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :setARIS9BATCHES_ARISADM_EXE (No Parameters)
REM // Determine client installation path automaticly by registry. Needed for
ARISADM90.exe
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:setARIS9BATCHES_ARISADM_EXE
REM // define the reg query
set
ARIS9BATCHES_regFullQuery="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SoftwareAG\LOG\A
RIS10.0" /v PATH
REM // check if the command can be execute successfully. By "1>NUL 2>&1"
fatal errors and general messages will send to nirvana
REG QUERY !ARIS9BATCHES_regFullQuery! 1>nul 2>&1
If "!ERRORLEVEL!" == "1" (
REM // define the reg query
set
ARIS9BATCHES_regFullQuery="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SoftwareAG\LOG\A
RIS10.0" /v PATH
REM // check if the command can be execute successfully. By "1>NUL
2>&1" fatal errors and general messages will send to nirvana
REG QUERY !ARIS9BATCHES_regFullQuery! 1>nul 2>&1
If "!ERRORLEVEL!" == "1" (
set ARIS9BATCHES_ARISADM_EXE=UNDEFINED
exit /B
)
)

REG QUERY !ARIS9BATCHES_regFullQuery! | find "PATH" >"%ARIS9BATCHES_fTMP%"

set /p ARIS9BATCHES_regQuery=<"%ARIS9BATCHES_fTMP%"

set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery: =+%


set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery: =+%
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery:++=+%
set ARIS9BATCHES_regQuery=%ARIS9BATCHES_regQuery:++=+%

set ARIS9BATCHES_regQuery=!ARIS9BATCHES_regQuery:+PATH+REG_SZ+=!
set ARIS9BATCHES_regQuery=!ARIS9BATCHES_regQuery:+= !

if "!ARIS9BATCHES_regQuery:~-1!" == " " set ARIS9BATCHES_regQuery=!


ARIS9BATCHES_regQuery:~0,-1!

set ARIS9BATCHES_ARISADM_EXE=!
ARIS9BATCHES_regQuery!\tools\ArisAdm\arisadm90.exe

if exist "%ARIS9BATCHES_fTMP%" del "%ARIS9BATCHES_fTMP%" 1>nul 2>&1

:endSetARIS9BATCHES_ARISADM_EXE

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Writing VBS-File that enables the Backup-Skript to ZIP Files and Folders
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:createVBSZipper
echo Set objArgs = WScript.Arguments > "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo InputFolder = objArgs(0) >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo ZipFile = objArgs(1) >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile,
True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo wScript.Sleep 2000 >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Set objShell = CreateObject("Shell.Application") >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo wScript.Sleep 2000 >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Set source = objShell.NameSpace(InputFolder).Items >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo objShell.NameSpace(ZipFile).CopyHere(source) >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"

echo wScript.Sleep 2000 >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"


echo ' Wait for compression window to open >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo set scriptShell = CreateObject("Wscript.Shell") >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Do While scriptShell.AppActivate("Compressing...") = FALSE >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo WScript.Sleep 500 ' Arbitrary polling delay >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Loop >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"

echo ' Wait for compression to complete before exiting script >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Do While scriptShell.AppActivate("Compressing...") = TRUE >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo WScript.Sleep 500 ' Arbitrary polling delay >>
"%ARIS9BATCHES_TMP_VBS_ZIPPER%"
echo Loop >> "%ARIS9BATCHES_TMP_VBS_ZIPPER%"
:endCreateVBSZipper

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :doZIP InputFolder TargetZIP
REM // Creates a ZIP-File from a folder
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example
Description
REM //
-----------------------------------------------------------------------------
--------------------
REM // %1 InputFolder C:\SoftwareAG
Path of the folder that have to zip.
REM // %2 TargetZIPName 2013-06-04_11-49-
56.93_tenant=default file path to target zip file.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:doZIP InputFolder TargetZIP
call :createVBSZipper

set ARIS9BATCHES_TMP_TargetZIPName=%2
set ARIS9BATCHES_TMP_TargetZIPName=!ARIS9BATCHES_TMP_TargetZIPName:"=!
set ARIS9BATCHES_TMP_TargetZIPPATH=!ARIS9BATCHES_TMP_TargetZIPName:"=!
set ARIS9BATCHES_TMP_TargetZIPPATH=%temp%\!
ARIS9BATCHES_TMP_TargetZIPName!.zip

%debug% cscript //B //NoLogo "%ARIS9BATCHES_TMP_VBS_ZIPPER%" %1 "!


ARIS9BATCHES_TMP_TargetZIPPATH!%"
cscript //B //NoLogo "%ARIS9BATCHES_TMP_VBS_ZIPPER%" %1 "!
ARIS9BATCHES_TMP_TargetZIPPATH!%"

%debug% move "!ARIS9BATCHES_TMP_TargetZIPPATH!%" "!


ARIS9BATCHES_BACKUPTARGET!\!ARIS9BATCHES_TMP_TargetZIPName!"
move "!ARIS9BATCHES_TMP_TargetZIPPATH!%" "!ARIS9BATCHES_BACKUPTARGET!\!
ARIS9BATCHES_TMP_TargetZIPName!.zip"
:endDoZIP
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :documentACCCommandResult %1 %2
REM // Stores the output of an ACC Command in the LOG-Folder of the current backup.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example
Description
REM //
-----------------------------------------------------------------------------
--------------------
REM // %1 Simple Filename listNodes.txt
Set the filename to store the output into the LOG-Folder
REM // %2 ACC-Command "list nodes"
ACC-Command that have to documented; Quotes are necessary!
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:documentACCCommandResult
set AccCommand=%2
set AccCommand=!AccCommand:"=!
echo Backup ACC Command Result for: %AccCommand%
set ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_LIST=
%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS%\%1
%ARIS9BATCHES_RUNACC% %AccCommand
%>"%ARIS9BATCHES_BACKUPTARGETFULLPATH_LOGS_LIST%"
:endDocumentACCCommandResult

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :printLine (No Params)
REM // Write simple blank lines to the output.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:printLine
echo.
REM //echo
�����������������������������������������������������������������������������������
��������������������������
echo.
:endPrintLine

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :tenantMGMT %1
REM // A wrapper for y-tenantMGMT.bat, a batch component of the UMC runnable.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example
Description
REM //
-----------------------------------------------------------------------------
--------------------
REM // %1 Command exportConfig
Command of the y-tenantmgmt
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:tenantMGMT command
pushd "%ARIS9BATCHES_TENANTMGMT_HOME%"
call :debugger call "y-tenantmgmt.bat" -s %ARIS9BATCHES_UMC_WEBSERVICE_URL%
-t "%ARIS9BATCHES_TENANT%" %*
call "y-tenantmgmt.bat" -s %ARIS9BATCHES_UMC_WEBSERVICE_URL% -t
"%ARIS9BATCHES_TENANT%" %*
popd
:endTenantMGMT

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :tenantDUMP %1
REM // A wrapper for y-datadump.bat, a batch component of the UMC runnable.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example
Description
REM //
-----------------------------------------------------------------------------
--------------------
REM // %1 Command export
Command of the y-datadump.bat
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:tenantDUMP command
pushd "%ARIS9BATCHES_TENANTMGMT_HOME%"
call :debugger call "y-datadump.bat" -s %ARIS9BATCHES_UMC_WEBSERVICE_URL% -t
"%ARIS9BATCHES_TENANT%" %*
call "y-datadump.bat" -s %ARIS9BATCHES_UMC_WEBSERVICE_URL% -t
"%ARIS9BATCHES_TENANT%" %*
popd
:endTenantDUMP

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :printHeadline %*
REM // Writes a Headline to the console output. Each parameter is part of the
Headline.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:printHeadline
echo %*
call :myColorPrint 1D
-----------------------------------------------------------------------------------
--------------------------
echo.
:endPrintHeadline
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :printSuccess %*
REM // Writes in green color a user defined message. Each parameter is part of the
Headline.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:printSuccess
call :myColorPrint 1A %*
echo.
:endPrintSuccess

exit /b
:createNoneEmptyDir

set ARIS9BATCHES_TMP_FOLDERNAME=%1
set ARIS9BATCHES_TMP_FOLDERNAME=!ARIS9BATCHES_TMP_FOLDERNAME:"=!
%debug% mkdir "!ARIS9BATCHES_TMP_FOLDERNAME!"
mkdir "!ARIS9BATCHES_TMP_FOLDERNAME!" %ARIS9BATCHES_OUTUP2NIRVANA%
REM // %ARIS9BATCHES_OUTUP2NIRVANA%

echo.>"!ARIS9BATCHES_TMP_FOLDERNAME!\!ARIS9BATCHES_FILENAME_DUMMYFILE!"
:endCreateNoneEmptyDir

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :debugger %*
REM // If debug mode is enabled, this procedure wites debug messages to the console
output. Developer procedure.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:debugger
if "%ARIS9BATCHES_debuggerEnabled%" == "yes" (
echo %*
)
exit /B
:endDebugger

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :fatalErrorCheckVariableIsInvalid %1 %2
REM // %1 Var to check
REM // %2 Error Message
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /B
:fatalErrorCheckVariableIsInvalid

set ARIS9BATCHES_TMP_VAR1=%1
set ARIS9BATCHES_TMP_VAR2=%2
set ARIS9BATCHES_TMP_VAR2=!ARIS9BATCHES_TMP_VAR2:"=!

if !ARIS9BATCHES_TMP_VAR1! == "UNDEFINED" (

call :myColorPrint 1c ... F A T A L E R R O R :


call :myColorPrint 1f !ARIS9BATCHES_TMP_VAR2!
echo.
echo.
call :myColorPrint 1c ... Backupmanager will exit now.
echo.

echo Fatal Error: !ARIS9BATCHES_TMP_VAR2!. Backupmanager will exit


now.>"!ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"

echo.>>"!ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"
echo.>>"!ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"
echo ------------------------------------->>"!
ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"
echo Current Settings:>>"!
ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"
echo ------------------------------------->>"!
ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"
set ARIS9BATCHES>>"!ARIS9BATCHES_BACKUPTARGETFULLPATH!\FATAL_ERROR.txt"

pause
exit /B
)
:EndfatalErrorCheckVariableIsInvalid

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // PROCEDURE call :myColorPrint %1 %*
REM // If debug mode is enabled, this procedure wites debug messages to the console
output. Developer procedure.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // P Scope Example
Description
REM //
-----------------------------------------------------------------------------
--------------------
REM // %1 Color 1A
Set the text background and foreground color, see color /?
REM // %* Text to output Word one two three
Each further parameter is part of the text to output; Quotes not
necessary.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:myColorPrint
set color=%1
set text=%*
set text=!text:%color% =!
set text=!text:...= !

call :colorPrint %1 "!text!" "%3"


exit /B
:endMyColorPrint
call :cleanupColorPrint

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Not documented; Is used by other procedures;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:colorPrint Color Str [/n]
setlocal
set "str=%~2"
call :colorPrintVar %1 str %3
exit /b

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Not documented; Is used by other procedures;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:colorPrintVar Color StrVar [/n]
if not defined %~2 exit /b
setlocal enableDelayedExpansion
set "str=a%DEL%!%~2:\=a%DEL%\..\%DEL%%DEL%%DEL%!"
set "str=!str:/=a%DEL%/..\%DEL%%DEL%%DEL%!"
set "str=!str:"=\"!"
REM // set "str=!str:TIME=%TIME% !"
REM //set "str=!str:DATE=%DATE% !"
pushd "%temp%"
findstr /p /A:%1 "." "!str!\..\x" nul 2>NUL
if /i "%~3"=="/n" echo(

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Not documented; Is used by other procedures;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:initColorPrint
set echoc=call :myColorPrint
set debug=call :debugger
rem // call :debugger
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do
rem"') do set "DEL=%%a"
<nul >"%temp%\x" set /p "=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%.%DEL%"

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Not documented; Is used by other procedures;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b
:cleanupColorPrint
del "%temp%\x"

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Checks UAC ("RUN AS Administrator")-Permissions and request them by GUI from
the user
REM // Not further documented;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /B
:UACCheckForPermissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.


if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
ping localhost -n 2 1>NUL 2>&1
goto UACPrompt
) else ( exit /b )

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Request UAC-Permission ("RUN AS Administrator")
REM // Not further documented;
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /B
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%ARIS9BATCHES_TMP_VBS_UAC%"
set params = %*:"=""
echo UAC.ShellExecute "cmd", " /K CD /D %~dp0 & %~s0", "", "runas", 1 >>
"%ARIS9BATCHES_TMP_VBS_UAC%"
"%ARIS9BATCHES_TMP_VBS_UAC%"
exit

REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM // Exit everthing.
REM // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit /b

S-ar putea să vă placă și