Befehl aus einer Batch-Datei nach einer bestimmten Zeit abbrechen und mit dem nächsten fortfahren
Hallo zusammen!
Folgendes Problem:
Ich habe einen NT4 Server und eine NT4 Workstation virtualisiert. Nun sollen die VMs per Batch abends herunterfahren und gesichert werden.
Bei den NT4 Maschinen hab ich schon probiert die HAL.dll mit der aus dem SP6a zu ersetzen und den Reg Eintrag poweroffaftershutdown auf 1 zu setzen, damit die Maschine ohne manuelles ausschalten herunterfährt. Jedoch ohne Erfolg.
Nun habe ich das Problem das der stop Befehl von vmware-cmd auf einen Rückgabewert von VMWare Server 1.0.9 wartet und diesen nicht bekommt, weil die Maschine schließlich nicht aus geht.
Hat jmd. eine Idee was ich noch machen könnte?? Vllt. Timeout einbauen, damit er den nächsten Befehl abarbeiten kann (z.B. dann stop hard damit die Machine aus geht)??
Gruß, Stefan
Folgendes Problem:
Ich habe einen NT4 Server und eine NT4 Workstation virtualisiert. Nun sollen die VMs per Batch abends herunterfahren und gesichert werden.
Bei den NT4 Maschinen hab ich schon probiert die HAL.dll mit der aus dem SP6a zu ersetzen und den Reg Eintrag poweroffaftershutdown auf 1 zu setzen, damit die Maschine ohne manuelles ausschalten herunterfährt. Jedoch ohne Erfolg.
Nun habe ich das Problem das der stop Befehl von vmware-cmd auf einen Rückgabewert von VMWare Server 1.0.9 wartet und diesen nicht bekommt, weil die Maschine schließlich nicht aus geht.
Hat jmd. eine Idee was ich noch machen könnte?? Vllt. Timeout einbauen, damit er den nächsten Befehl abarbeiten kann (z.B. dann stop hard damit die Machine aus geht)??
Gruß, Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123145
Url: https://administrator.de/contentid/123145
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo .stefan und willkommen im Forum!
Die folgende Skizze soll zeigen, wie ein "Befehl" (eine weitere Batchdatei) gestartet und nach Ablauf der angegebenen Zeit abgebrochen werden könnte:
Hier wird tatsächlich nur der "pause"-Befehl (siehe Zeile 12) in einer, durch diesen Batch selbst erstellten, temporären Batchdatei ausgeführt. Soferne nicht innerhalb des vorgegebenen Zeitraumes von 20 Sekunden die "Pause" beendet (und dadurch in weiterer Folge die Datei %Zeit% gelöscht) wird, läuft der Batch weiter und beendet den Task der temporären Batchdatei.
Natürlich kann auch ein bestehender Batch aufgerufen werden (der Pfad muss dazu in %Befehl% stehen). Dieser Batch müsste dann sein Ende ebenfalls durch Löschen der Datei lt %Zeit% signalisieren.
Einschränkung: Bei einem Monatswechsel während der vorgegebenen Laufzeit des "Befehles" (also zB Start am 31.8. um 23:30, Laufzeit 50 Minuten) erfolgt sofort ein Abbruch (da der "Bis"-Zeitpunkt mit "01.09.2009 00:20:00" ermittelt würde und der Vergleichswert "31.08.2009 23:30:00" wegen der Art des Vergleiches "größer" wäre). Bei Bedarf ließe sich allerdings durch Umformatieren der Datumswerte auch diese Einschränkung beseitigen).
Grüße
bastla
Die folgende Skizze soll zeigen, wie ein "Befehl" (eine weitere Batchdatei) gestartet und nach Ablauf der angegebenen Zeit abgebrochen werden könnte:
@echo off & setlocal
set "Dauer=20"
::Einheiten: s=Sekunden, n=Minuten
set "Einheit=s"
set G=%GetTime.vbs
set "Zeit=%temp%\Zeit.txt"
set "Befehl=%temp%\Befehl.cmd"
set "Titel=StillRunning"
>%Befehl% echo @echo off ^& setlocal
>>%Befehl% echo pause
>>%Befehl% echo del %Zeit%
>%G% echo WScript.Echo DateAdd("%Einheit%","%Dauer%",Now)
for /f "delims=" %%i in ('cscript //nologo %G%') do set "Bis=%%i"
>%Zeit% echo %Bis%
start "%Titel%" %Befehl%
:Loop
set "Jetzt=%date% %time:~,8%"
if exist %Zeit% if "%Jetzt%" lss "%Bis%" goto :loop
if exist %Zeit% (
echo Zeitablauf
taskkill /f /fi "WINDOWTITLE eq %Titel% - %Befehl%">nul
)
::aufräumen
del %G%
del %Befehl%
der %Zeit%
echo Es geht weiter
Natürlich kann auch ein bestehender Batch aufgerufen werden (der Pfad muss dazu in %Befehl% stehen). Dieser Batch müsste dann sein Ende ebenfalls durch Löschen der Datei lt %Zeit% signalisieren.
Einschränkung: Bei einem Monatswechsel während der vorgegebenen Laufzeit des "Befehles" (also zB Start am 31.8. um 23:30, Laufzeit 50 Minuten) erfolgt sofort ein Abbruch (da der "Bis"-Zeitpunkt mit "01.09.2009 00:20:00" ermittelt würde und der Vergleichswert "31.08.2009 23:30:00" wegen der Art des Vergleiches "größer" wäre). Bei Bedarf ließe sich allerdings durch Umformatieren der Datumswerte auch diese Einschränkung beseitigen).
Grüße
bastla