domonomie
Goto Top

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

Content-ID: 1860

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

Ausgedruckt am: 04.11.2024 um 22:11 Uhr

ataub2qf
ataub2qf 07.08.2004 um 10:13:31 Uhr
Goto Top
Das könntest du mit einem Ping machen

ping 192.168.123.25 -n 15 -w 1000 > NUL

Hier wartet er 15 x 1000 Millisekunden.
wichtig ist, dass ess die IP-Adresse nicht in deinem Netzwerk gibt.

mfg Alex
domonomie
domonomie 07.08.2004 um 11:40:39 Uhr
Goto Top
ja, das wäre ne möglichkeit, aber ne ziemlich ungewöhnliche.
danke.
ataub2qf
ataub2qf 07.08.2004 um 11:47:13 Uhr
Goto Top
Ich habe das auch schon früher mal gebraucht, aber leider keine anderen Möglichkeiten aus der CMD heraus. Ohne zusätzliche Progs gehts denk ich mal nur so.
Lord-Helmi
Lord-Helmi 10.08.2004 um 07:49:05 Uhr
Goto Top
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
kl-A
kl-A 03.09.2004 um 12:09:05 Uhr
Goto Top
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.
RB
RB 05.06.2005 um 19:08:21 Uhr
Goto Top
Wenn du ein Programm brauchst das ein Pause in ein Batchprogramm einfügt:

RMWAIT.EXE 149 KB der Firma RM-Systeme in Zeiselmauer

Wenn benötigt bitte melden: info@buechner.org

RB
koertner
koertner 08.08.2005 um 13:19:46 Uhr
Goto Top
Schau dir mal den - choice - Befehl an.
Gruss K.
Biber
Biber 08.08.2005 um 16:14:38 Uhr
Goto Top
Moin Dominique,

im Windows ResKit (s. Lord_Helmi´s Link) ist auch noch eine TimeOut.exe. (TimeOut [secs] ).
Und wenn überhaupt dieser immer wieder zitierte Ping-Missbrauch verwendet wird, dann:
ping localhost -n [secs]  > nul

Frank / der Biber aus Bremen
messebe
messebe 16.12.2005 um 10:39:00 Uhr
Goto Top
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
RB
RB 16.12.2005 um 22:14:00 Uhr
Goto Top
Hätte da ein kleines Programm Namens RMWAIT.EXE, welches die ausführung des nachgestellten Befehls um X Sekunden verzögert.

Bei Bedarf bitte Nachricht an info @ rb-data . de
oezkan
oezkan 23.01.2006 um 15:18:25 Uhr
Goto Top
Hallo,


START D:\Task-Killer\pv.exe -kf Task1.exe
sleep 15
START D:\Task-Killer\pv.exe -kf Task2.exe


müßte funzen. Denn Tipp hast Du ja schon bekommen....

Grüße;
Özkan
derCaptain
derCaptain 28.01.2006 um 13:48:51 Uhr
Goto Top
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
Biber
Biber 28.01.2006 um 14:07:57 Uhr
Goto Top
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