Wie zu Fragen, für die batch-Datei Benutzer-Eingabe mit einem timeout
So, ich bin versucht, fügen Sie ein timer zu einem meiner if-Anweisungen unter set-Befehl, aber ich bin mir nicht sicher, was der Befehl wäre. Das Skript starten und warten dreißig Minuten, bevor es den PC Neustarts, oder warten Sie für ein Benutzer-Eingang zu-Eingang es damals oder stornieren. Also ich habe meine zwei if-Anweisungen für die "jetzt neu starten" und "Abbrechen" gesetzt, aber jetzt brauche ich eine if-Anweisung, um es nach unten gezählt, von dreißig Minuten, bevor er führt meinen Befehl "neu starten". Auch wenn jemand weiß wie Sie ein visual timer auf, es zeigt, wie viel Zeit übrig ist, wäre ein plus. Danke Jungs!!!
@Echo off
:START
set /p answer=PC WILL RESTART IN 30 MINUTES, PRESS N TO RESTART NOW OR C TO CANCEL
if "%answer%"=="n" (GOTO Label1)
if "%answer%"=="c" (GOTO Label2)
if "TIMER GOES HERE" "==" (GOTO Label1)
:Label1
shutdown -r -t 60 -f
:Label2
exit
InformationsquelleAutor Matt P | 2012-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähnlich einem Ruhezustand.
for-Schleife runterzählen von 600 Sekunden -1 bis 1. Berechnen Sie min und die zweite von Sekunden. Nur pad mit 0 Sekunden. min-und sec-wird an Wahl-Zeichenfolge.
/c:CN1
ist die Kartierung von C-und N-Zeichen von der Eingabe bis zurerrorlevel
. If errorlevel 1 oder 2, Benutzer die Taste und springt zu brechen. errorlevel 2 N ist, so überwintern.InformationsquelleAutor ATOzTOA
Ich empfehlen
CHOICE.EXE
es wird standardmäßig mit den meisten Versionen von Windows (mit Ausnahme von Windows NT, 2000 und XP verwendet werden, zum Download von der Microsoft-website, aber Sie scheinen zu übersehen haben dieser* ein auf Ihre ftp-site.) und ist einfach zu bedienen.Einfach
CHOICE.EXE
wie das funktioniert......und ist das gleiche wie...
...beide angezeigt werden...
...und beide warten, bis der Benutzer durch drücken einer
Y
oderN
.Wahl speichert das Ergebnis in %errorlevel%. Y=1, N=2.
Den code, den ich zur Verfügung gestellt wird, nutzt die Standard -
/D <choice>
und timeout/T <seconds>
Optionen.In Beispiel...
...gibt dem Benutzer die Wahl von Y oder N, 5 Sekunden warten, dann automaticlly wählen Sie die Standard-Wahl von Y, was in der %ERRORLEVEL%==1.
Weiteres Beispiel ist...
...und es zeigt...
...und...
Gibt es keinen ERRORLEVEL 0.
Mehr auf die Nutzung von
choice
gebenCHOICE /?
an der Eingabeaufforderung.*HINWEIS Die version von
CHOICE.EXE
ich einen link zu verwendet leicht unterschiedliche Befehle, bietet aber die gleiche Funktionalität.InformationsquelleAutor James K
Hier ist eine wirklich einfache Lösung für Vista und Windows 7 sieht vor, dass die timeout-Funktion, aber nicht geben einen visuellen countdown.
Hier ist eine komplexe Lösung für Vista und Windows 7, bietet ein visual countdown, aber es löscht das Konsolenfenster, jede Sekunde. Auch das timing ist wahrscheinlich ein bisschen ab.
Wenn Sie noch eine XP-Lösung, dann denke ich, dass Sie entweder herunterladen müssen, eine nicht-native-command-line-tool, das fragt für die Eingabe mit einem timeout-Funktion, sonst Schalter in VBScript oder JScript.
BEARBEITEN
Beide Scripte oben angepasst werden kann, laufen auf XP mit der CHOICE.EXE download von der Microsoft-FTP-site James K in seiner Antwort.
Dass die version der WAHL, hat eine etwas andere syntax.
Anzupassen meinem ersten Skript verwenden:
Sich mein zweites Skript verwenden:
BEARBEITEN - Hier ist eine grobe VBS-Lösung, die kompatibel ist mit XP
Ich denke, Sie kann eine mehr elegante VBS-Lösung mit HTA, aber das ist viel mehr Arbeit, und ich weiß wirklich nicht viel über diese Technologie.
Wie ich schon in meiner Antwort sind, können Sie mit VBS, aber nicht mit native batch. Siehe meine aktualisierte Antwort für eine VBS-Lösung.
InformationsquelleAutor dbenham
Ich würde diesen code verwenden, um das Skript auf pause für eine angegebene Anzahl von Millisekunden:
Dieser sendet 1 ping auf die IP-Adresse
1.1.1.1
nach<milliseconds>
verstrichen ist. Und der Ausgang desping
wird der Befehl abgewiesen zu NUL.Sie änderten Ihre Anforderungen nach, antwortete ich auf Ihre ursprüngliche Frage.
InformationsquelleAutor mjgpy3
Empfehle ich das Skript von SPC_75
seine ein .vbs-Datei, und zwar zum überwintern, aber leicht zu ändern für sleep oder shutdown.
Funktioniert perfekt mit einer Warnung und timeout.
InformationsquelleAutor aeperez94