SnTT: Update zum Starten von Batch-Dateien mit Programm-Dokumenten

von Thomas Bahn,
assono GmbH, Standort Kiel,

Eine kleine Aktualisierung zu dem Blog-Eintrag SnTT: Starten von Batch-Dateien mit Programm-Dokumenten von 2007:

Ein freundlicher Leser unseres Blogs (Danke, Ruaridh) hat mich darauf aufmerksam gemacht, dass das Beispiel-Skript nicht wie gewünscht durchlief. Es würde zwar den Server beenden, ihn dann aber nicht mehr starten - wenn das Skript von einem Programm-Dokument aus gestartet wurde. Wird es manuell gestartet, funktioniere es wie gewünscht.

Eine etwas längere Suche brachte mich dann doch schließlich auf die richtige Fährte:
Während bei einem manuellen Start das Skript auch weiter läuft, wenn zu löschende oder umzubenennende Dateien nicht vorhanden sind, und nur eine Warnung in der Konsole ausgegeben wird, bricht das Skript sofort ab, wenn es per Programm-Dokument gestartet wird.

Die Lösung ist also, vorher zu prüfen, ob die Datei überhaupt existiert, also statt

DEL "%DOMINO_DATA%\log.nsf.4" >>"%BATCH_FILE_LOG%"
REN "%DOMINO_DATA%\log.nsf.3" "%DOMINO_DATA%\log.nsf.4" >>"%BATCH_FILE_LOG%"

besser

IF EXIST "%DOMINO_DATA%\log.nsf.4" DEL "%DOMINO_DATA%\log.nsf.4" >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf.3" REN "%DOMINO_DATA%\log.nsf.3" "log.nsf.4" >>"%BATCH_FILE_LOG%"

schreiben.

Das vollständige, korrigierte Batch-Skript
ist dann:

@ECHO OFF
REM variable parts; to be adapted for each installation
SET DOMINO_SERVICE=Lotus Domino Server (notesdomino6)
SET DOMINO_PROGS=C:\Programme\Domino6
SET DOMINO_DATA=D:\Notes\Domino6
SET BATCH_FILE_LOG=%DOMINO_DATA%\weekly-maintenance.log

REM log settings
ECHO Weekly maintenance started >>"%BATCH_FILE_LOG%"
date /t >>"%BATCH_FILE_LOG%"
time /t >>"%BATCH_FILE_LOG%"
ECHO DOMINO_SERVICE: %DOMINO_SERVICE% >>"%BATCH_FILE_LOG%"
ECHO DOMINO_PROGS: %DOMINO_PROGS% >>"%BATCH_FILE_LOG%"
ECHO DOMINO_DATA: %DOMINO_DATA% >>"%BATCH_FILE_LOG%"
ECHO. >>"%BATCH_FILE_LOG%"

ECHO Stopping Domino service >>"%BATCH_FILE_LOG%"
net stop "%DOMINO_SERVICE%" >>"%BATCH_FILE_LOG%"

ECHO Compacting system databases >>"%BATCH_FILE_LOG%"
"%DOMINO_PROGS%\ncompact" -c -i names.nsf >>"%BATCH_FILE_LOG%"
"%DOMINO_PROGS%\ncompact" -c -i admin4.nsf >>"%BATCH_FILE_LOG%"
"%DOMINO_PROGS%\ncompact" -c -i events4.nsf >>"%BATCH_FILE_LOG%"
REM Domino 7+ only
REM "%DOMINO_PROGS%\ncompact" -c -i ddm.nsf >>"%BATCH_FILE_LOG%"

ECHO Refreshing view in Domino Directory >>"%BATCH_FILE_LOG%"
"%DOMINO_PROGS%\nupdall" -R names.nsf >>"%BATCH_FILE_LOG%"

ECHO Save log database (4 generations) >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf.4" DEL "%DOMINO_DATA%\log.nsf.4" >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf.3" REN "%DOMINO_DATA%\log.nsf.3" "log.nsf.4" >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf.2" REN "%DOMINO_DATA%\log.nsf.2" "log.nsf.3" >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf.1" REN "%DOMINO_DATA%\log.nsf.1" "log.nsf.2" >>"%BATCH_FILE_LOG%"
IF EXIST "%DOMINO_DATA%\log.nsf"	 REN "%DOMINO_DATA%\log.nsf" "log.nsf.1" >>"%BATCH_FILE_LOG%"

ECHO Restarting Domino service >>"%BATCH_FILE_LOG%"
net start "%DOMINO_SERVICE%" >>"%BATCH_FILE_LOG%"
ECHO. >>"%BATCH_FILE_LOG%"

ECHO Weekly maintenance completed >>"%BATCH_FILE_LOG%"
date /t >>"%BATCH_FILE_LOG%"
time /t >>"%BATCH_FILE_LOG%"
ECHO. >>"%BATCH_FILE_LOG%"
Fachbeitrag IBM Domino Tipp Administration

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de