Wie kann ich im Batch ein Zeitlimit für „set /p“ festlegen?

Wie kann ich im Batch ein Zeitlimit für „set /p“ festlegen?

Ich versuche seit etwa 30 Minuten herauszufinden, wie man ein Zeitlimit für ein „set /p“ in Batch einstellt, und habe es immer noch nicht herausgefunden.

set /p example=

ich möchte, dass dieser Code beendet wird, wenn nach seiner Aktivierung 3 Sekunden vergehen und der Benutzer nichts eingegeben hat.

Antwort1

Der SET-Befehl ist für diese Art der Verwendung nicht gut geeignet, und der Benutzer Jeff Zeitlin hat in einem Kommentar einen anderen Befehl vorgeschlagen, der eine Zeitbegrenzung vorsieht.

Wenn Sie dennoch den SET-Befehl verwenden möchten, sind dazu die folgenden zwei Batchdateien erforderlich:

  1. Löschen Sie eine bestimmte temporäre Datei, starten Sie Batch 2, warten Sie eine Weile und beenden Sie dann Batch 2. Wenn die temporäre Datei jetzt existiert, kann ihr Wert verwendet werden.
  2. Warten Sie auf die Eingabe und speichern Sie sie in dieser temporären Datei. Wenn das Programm beendet wird, bevor die Eingabe eingeht, existiert die Datei nicht.

Ein Beispiel für solche Batchdateien finden Sie unter diese Antwort, das dies sogar mit nur einer Batchdatei schafft, die einen zweiten Thread für sich selbst startet.

verwandte Informationen