Frage

Ich kam vorbei an ein paar Möglichkeiten, um eine Zeitverzögerung wie Pings und dirs zu verursachen. Obwohl keiner von ihnen wirklich präzise ist, richtige Art und Weise ist es Anny, eine Zeitverzögerung zu verursachen?

hörte ich über ein paar Dinge, obwohl sie auf allen Computern nicht funktionieren, nicht auf meinem Windows XP noch Windows NT auf dem College.

Es dauert ewig, bis alle Dateien auf Google gehe eine gute Antwort zu finden, und da ich noch nicht die Frage auf Stack-Überlauf fand ich dachte, es wäre gut, nur die Frage selbst zu schaffen;)

War es hilfreich?

Lösung

Schlaf

Es ermöglicht Ihnen, dies zu tun.

Andere Tipps

<warning>This is a hack</warning>

Verwenden Sie Ihre bevorzugte Programmiersprache (außer MS-DOS Batch) und eine Anwendung erstellen, die ein Argument, die Anzahl von Millisekunden zu warten, dann rufen Sie einfach das Programm aus einer Batch-Datei, um die erforderliche Menge zu schlafen.

Soweit ich weiß, ist dies der einzige zuverlässige Weg, um es in DOS zu tun.

Wenn Sie nicht die Möglichkeit haben, ein anderes Programm zusammen mit der Batch-Datei zu senden, verwenden Sie DEBUG einen Schlafbefehl on the fly zu schreiben, und führen sie es aus.

EDIT: Die oben genannte Antwort war eine Art toungue-in-Wange. Ich würde nicht eine Batch-Datei ausführen, die in ihm einige DEBUG Tricks hatten. Ich glaube, die traditionelle Art und Weise eine Verzögerung in einer Batch-Datei zu verwenden, ist die CHOICE commad .

type nul|choice /c:y /t:y,nn > nul

Welche natürlich nicht in XP nicht funktioniert, da diese WAAYY zu bequem wäre.

"... richtige Art und Weise ...."

Sie können das nicht in DOS.

Es ist möglich, eine Genauigkeit von wenigen Millisekunden zu erreichen, je nach Geschwindigkeit Ihrer Maschine.

Ich habe gerade beendet, eine solche Partie zu schaffen, und obwohl ich nicht mit Ihnen den eigentlichen Code teilen, gebe ich Ihnen einige Hinweise:

  1. % time% Variable verwenden, und devide in Teil (ohne „:“ und „“) - ein Teilkette wird die Sekunden erhalten, die andere - Minuten (Sie Stunden hinzufügen können, um Verzögerungen von mehr als eine Stunde und sogar das Datum übernehmen)

  2. Gebrauch gesetzt / A, die Zeitvariablen in 1 Ganzzahl, die die Anzahl der Sekunden zu transformieren, die seit einer abgerundete Stunde vergangen (X: 00: 00.00). Fügen Sie die inputed Verzögerung (in Sekunden) an, dass.

  3. Erstellen einer kurzen Schleife, um den Wert des kombinierten var (erläutert in Abschnitt 2) auf die aktuelle Zeit zu vergleichen (müssen die curent kombinierten min + sec-Wert innerhalb dieser Schleife ReCalc) und Austritt aus der Schleife, wenn das Spiel ist wahr.

Ein wichtiger Bugfix hier - Sie werden alle vorhergehenden Nullen Variablen gestutzt müssen, die im Begriff sind, in einem „set / A“ Befehl ausgewertet werden. Ich habe bemerkt, dass die Konsole des Bewerters (für diesen Befehl) gibt einen Fehler, wenn eine ganze Zahl mit einem vorangehenden 08 oder 09 (oder einfach 08 oder 09) verwendet wird.

Hinweis: Dies wird nur mit Befehlserweiterungen aktiviert arbeiten. Um es zu testen, verwenden Sie die folgende am Anfang der Routine:

verify other 2>nul
setlocal enableextensions
if errorlevel 1 goto err

Und dann ein Fehlerhandler Unterprogramm fügt den Namen "err".

Wenn Sie möchten, würden Sie Ihre Batch in derselben Datei fortzusetzen, verwenden Sie „endlocal“ nach dem Looping Unterprogramm.

BTW, dies gilt ONLY , um Windows XP Service Pack 2 oder 3.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top