Wartezeit in Batch-Datei einfügen
Hi an alle,
hab mir eine Batch-Datei (.BAT) (unter Windows XP Pro) erstellt, mit der ich verschiedene Prozesse schließen (killen) kann.
Ist es möglich am Anfang der Batch-Datei einen Befehl einzugeben, der bewirkt, dass die Batch-Datei erst nach X Sekunden abgearbeitet wird?
sieht bei mir kurz gefasst so aus:
@ ECHO OFF
START D:\Task-Killer\pv.exe -kf Task1.exe
START D:\Task-Killer\pv.exe -kf Task2.exe
es soll also jetzt zwischen @ ECHO OFF und dem ersten Start ein Befehl rein, der die Batchdatei um ca.15 Sekunden pausieren lässt.
wäre super, wennn mir jemand helfen könnte. einen Vorschlag zur Problemlösung mit Basic oder C/C++ wäre auch sehr nett.
MfG Dominique Strohmayer
hab mir eine Batch-Datei (.BAT) (unter Windows XP Pro) erstellt, mit der ich verschiedene Prozesse schließen (killen) kann.
Ist es möglich am Anfang der Batch-Datei einen Befehl einzugeben, der bewirkt, dass die Batch-Datei erst nach X Sekunden abgearbeitet wird?
sieht bei mir kurz gefasst so aus:
@ ECHO OFF
START D:\Task-Killer\pv.exe -kf Task1.exe
START D:\Task-Killer\pv.exe -kf Task2.exe
es soll also jetzt zwischen @ ECHO OFF und dem ersten Start ein Befehl rein, der die Batchdatei um ca.15 Sekunden pausieren lässt.
wäre super, wennn mir jemand helfen könnte. einen Vorschlag zur Problemlösung mit Basic oder C/C++ wäre auch sehr nett.
MfG Dominique Strohmayer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1860
Url: https://administrator.de/contentid/1860
Ausgedruckt am: 04.11.2024 um 22:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo,
dafür gibt es bei Microsoft die Datei sleep.exe. Die ist im entsprechenden Resource-Kit ( http://www.microsoft.com/windows/reskits/default.asp ) verfügbar.
Gruß
Michael
dafür gibt es bei Microsoft die Datei sleep.exe. Die ist im entsprechenden Resource-Kit ( http://www.microsoft.com/windows/reskits/default.asp ) verfügbar.
Gruß
Michael
schau mal hier:
http://www.heise.de/ct/03/09/214/default.shtml
der abschnitt "Ein Schläfchen für die XP-Batchdatei" dürfte für dich interessant sein.
http://www.heise.de/ct/03/09/214/default.shtml
der abschnitt "Ein Schläfchen für die XP-Batchdatei" dürfte für dich interessant sein.
Habe einen Link gefunden: http://www.ppedv.de/software/tool.aspx
Dort kannst Du dir die wait.exe runterladen. Habe sie früher unter DOS in vielen Batchdateien benutzt.
Falls Du Probs damit haben solltest melde Dich
MESSEBE
Dort kannst Du dir die wait.exe runterladen. Habe sie früher unter DOS in vielen Batchdateien benutzt.
Falls Du Probs damit haben solltest melde Dich
MESSEBE
Die Frage ist zwar schon alt aber vllt. brauchts ja noch jemand.
Wenn man keine zusätzliche software verwenden möchte kann man das so lösen:
SET StartTime=%TIME::=%
SET StartTime=%StartTime:~0,-3%
SET /A EndTime=%StartTime%+15
:Wait
SET NowTime=%TIME::=%
SET NowTime=%NowTime:~0,-3%
IF %EndTime% GEQ %NowTime% GOTO Wait
Wenn man keine zusätzliche software verwenden möchte kann man das so lösen:
SET StartTime=%TIME::=%
SET StartTime=%StartTime:~0,-3%
SET /A EndTime=%StartTime%+15
:Wait
SET NowTime=%TIME::=%
SET NowTime=%NowTime:~0,-3%
IF %EndTime% GEQ %NowTime% GOTO Wait
Moin, derCaptain,
witzige Idee.. bin ich noch gar nicht drauf gekommen.
Aber in der Praxis gibt es aufgrund Buggy-M$ zwei Probleme.
a) die Uhrzeit kommt unter Umständen MIT Hundertstelsekunden. Also in der Form
$cmd$set starttime=%time::=%
$cmd$set start
starttime=135329,32
(Originalzeit war 13:53:29,32)
Okay, mit kleiner Anpassung läuft das. Entweder die Hundertstel-Sekunden abschneiden:
For /F "delims=," %%i in (%starttime%) do set "starttime=%%i"
-oder-
den Substring-Startparameter auf "-6" setzen.
b) Der M$-Bug ist schwieriger zu umgehen:
Falls eine Uhrzeit mit "0" anfängt, fasst die äußerst kurz mitdenkende Redmonder Logik das IMMER als Oktal-Zahl auf.
Z.B. wenn Deine Startzeit 00:00:11 (elf Sekunden nach Mitternacht ist) kommt raus:
$cmd$set /a 000011
9
Bei 19 Sekunden nach Mitternacht allerdings FEHLER:
$cmd$set /a 000019
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.
Ist kein Denkfehler von Dir, sondern Unfähigkeit bzw. ein weiterer undokumentierter Bug bei Bills Bande, den ich auch auf meiner Liste für das geplante Batch-Tut IV "Undokumentiertes, Features und Bug am CMD-Prompt" habe.
Das bringe ich aber erst nach dieser merkwürdigen c't-Aktion raus.
Grüße Biber
witzige Idee.. bin ich noch gar nicht drauf gekommen.
Aber in der Praxis gibt es aufgrund Buggy-M$ zwei Probleme.
a) die Uhrzeit kommt unter Umständen MIT Hundertstelsekunden. Also in der Form
$cmd$set starttime=%time::=%
$cmd$set start
starttime=135329,32
(Originalzeit war 13:53:29,32)
Okay, mit kleiner Anpassung läuft das. Entweder die Hundertstel-Sekunden abschneiden:
For /F "delims=," %%i in (%starttime%) do set "starttime=%%i"
-oder-
den Substring-Startparameter auf "-6" setzen.
b) Der M$-Bug ist schwieriger zu umgehen:
Falls eine Uhrzeit mit "0" anfängt, fasst die äußerst kurz mitdenkende Redmonder Logik das IMMER als Oktal-Zahl auf.
Z.B. wenn Deine Startzeit 00:00:11 (elf Sekunden nach Mitternacht ist) kommt raus:
$cmd$set /a 000011
9
Bei 19 Sekunden nach Mitternacht allerdings FEHLER:
$cmd$set /a 000019
Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.
Ist kein Denkfehler von Dir, sondern Unfähigkeit bzw. ein weiterer undokumentierter Bug bei Bills Bande, den ich auch auf meiner Liste für das geplante Batch-Tut IV "Undokumentiertes, Features und Bug am CMD-Prompt" habe.
Das bringe ich aber erst nach dieser merkwürdigen c't-Aktion raus.
Grüße Biber