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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49233
Url: https://administrator.de/contentid/49233
Ausgedruckt am: 23.11.2024 um 07:11 Uhr
4 Kommentare
Neuester Kommentar
Moin Vip1975,
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
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
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
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