vip1975
Goto Top

Probleme mit IF im Batchmodus

Syntax hin und her ?!?!

Hallo,

ich muss Backups übers netzwerk erstellen. Hierbei handelt es sich über Datenbanken auf einen Datenbankserver die ich auf einen Citrix Server kopieren muss. Bevor ich die Datenbank sichern kann prüfe ich zuerst ob die auch hochgefahren ist. (Es handelt sich also beim Backup um einen "Live" Backup)

Hier mein Code:

CALL X:\BACKUP\Admin\_test_verb.cmd ---- Hier wird versuch die Datenbank anzupingen

Wenn der Ping erfolgreich war (also errorlevel 0) dann gehts weiter

if %ERRORLEVEL% == 0 (
CALL X:\BACKUP\Admin\_dbsicherung.cmd
echo Ping zur Datenbank %QUELLE% erfolgreich > %PFAD%\%QUELLE%.txt
echo %Time%: database backup (%QUELLE%) done >> %Log%
) else (
echo %Time%: database backup (%QUELLE%) failed >> %Log%
)

Wenn ich es so im Batchmodus ausführe funktionierts, allerdings im sheduledtasks nicht ?!

Kann mir jemand sagen was an den Syntax nicht stimmt

Mfg.
Lukas

Content-Key: 49233

Url: https://administrator.de/contentid/49233

Printed on: April 25, 2024 at 14:04 o'clock

Member: Biber
Biber Jan 19, 2007 at 08:51:07 (UTC)
Goto Top
Moin Vip1975,

Kann mir jemand sagen was an den Syntax nicht stimmt
Liegt wahrscheinlich nicht an den Syntax... der ist fast perfekt.

Wahrscheinlichster Fehler ist, dass für den als Task gestarteten Job gar kein Laufwerk X: existiert. Woher soll er es kennen?.

Nimm ein lokales Laufwerk statt X:\ -oder- einen UNC-Pfad ("\\einServer\eineFreigabe").

Grüße
Biber
Member: Vip1975
Vip1975 Jan 19, 2007 at 10:53:28 (UTC)
Goto Top
Hallo Biber,

du hast Recht ... der Fehler lag tatsächlich im Syntax .... Als ich die "(" und ")" neben die Quellenangabe gelöscht habe, funktionierte es. Also von (%QUELLE%) in %QUELLE%. Ich dachte mit Echo muss alles ausgegeben werden, aber da scheiterte es, allerdings nur in Sheduled Task. Wenns so ausgeführt wird, funktionierts trotzdem.

Danke nochmal

Mfg.
Lukas
Member: Biber
Biber Jan 19, 2007 at 11:36:19 (UTC)
Goto Top
Moin Lukas,

Fussnote:
Sollte es Dir aus ästhetischen Gründen doch wichtig sein, dass die runden Klammern mit im *.Log erscheinen, dann kannst/musst Du diese Klammern mit einer Caret ("^") maskieren.

Also statt
Jetzt: Echo ......von (%QUELLE%) in ....
Besser: Echo ......von ^(%QUELLE%^) in ....
Dann kommt der CMD-Interpreter nicht durcheinander.

Grüße
Biber
Member: Vip1975
Vip1975 Apr 24, 2007 at 10:22:03 (UTC)
Goto Top
Hallo Biber,


danke nach mal .... klappt alles 100% ;)

Mfg.
Lukas