Inselknolle Geschrieben 25. November 2012 Geschrieben 25. November 2012 Hallo zusammen. Ich hätte da mal eine Frage als jemand der 0 Ahnung hat. Ich hatte nach einer Lösung gesucht den PC automatisch in den Schlaf zu schicken. Dabei bin ich auf die Lösung über eine .bat Datei gekommen. Es war schnell alles umgesetzt (findet sich ja auch alles im Netz) nur leider konnte ich nicht mehr wirklich aufhören mit probieren. Jetzt habe ich also das hier: @echo off sET option= :a CLS sET /p option=Welche Option soll gestartet werden? (1) = Herunterfahren / (2) = Restart / (3) = Timer abbrechen / (4) = Exit IF '%option%'=='1' GOTO b IF '%option%'=='2' GOTO c IF '%option%'=='3' GOTO d IF '%option%'=='4' GOTO END REM ----------------------------------------------------------------------------------------------------------------------------------------------- :b set /p time=Geben sie Ihre Zeit in Sekunden ein: shutdown -s -f -t %time% set /p next=Option gestartet. Der PC wird in %time% Sekunden automatisch heruntergefahren. Hierbei wird das Herunterfahren ggf. erzwungen. Alle laufenden Programme werden hierbei geschlossen und es besteht die Gefahr von Datenverlust. Der Vorgang kann jederzeit im Hauptmenue unterbrochen werden. Weitere Optionen? (1) = Zum Hauptmenue / (2) = Programm beenden IF '%next%'=='1' GOTO a IF '%next%'=='2' GOTO END GOTO END REM ----------------------------------------------------------------------------------------------------------------------------------------------- :c set /p time=Geben sie Ihre Zeit in Sekunden ein: shutdown -r -f -t %time% set /p next=Option gestartet. Der PC wird in %time% Sekunden automatisch neu gestartet. Hierbei wird der Neustart ggf. erzwungen. Alle laufenden Programme werden hierbei geschlossen und es besteht die Gefahr von Datenverlust. Der Vorgang kann jederzeit im Hauptmenue unterbrochen werden. Weitere Optionen? (1) = Zum Hauptmenue / (2) = Programm beenden IF '%next%'=='1' GOTO a IF '%next%'=='2' GOTO END GOTO END REM ----------------------------------------------------------------------------------------------------------------------------------------------- shutdown -a set /p next=Alle laufenden Timer wurden erfolgreich abgeschaltet. Der Vorgang kann jederzeit im Hauptmenue erneut gestartet werden. Weitere Optionen? (1) = Zum Hauptmenue / (2) = Programm beenden IF '%next%'=='1' GOTO a IF '%next%'=='2' GOTO END GOTO END :END REM ----------------------------------------------------------------------------------------------------------------------------------------------- Das funktioniert auch bestens. Die Formatierung lässt noch zu wünschen übrig aber Leerzeilen etc. habe ich noch nicht hinbekommen. Nun wollte ich etwas weiterspielen (Ich weiß das der Umfang keinen Sinn macht aber es interessiert mich einfach). Nachdem ich eine Zeit eingegeben habe möchte ich, dass sich eine neue Datei öffnet in der nun die Sekunden als Countdown angezeigt werden. Das natürlich nur bei :b und :c. Vielleicht ist es möglich etwas anzeigen zu lassen wie: Sie haben ein "Auto Shutdown" gestartet.....oder halt Sie haben ein "Auto Restart" gestartet.... Damit ich nach 3 Stunden (nur ein Beispiel) auch noch sehe welcher Countdown da überhaupt läuft. Kann mit vielleicht jemand weiterhelfen? Mir qualmt der Kopf aber mehr ist gerade einfach nicht drin. Außerdem (falls es möglich ist) soll die Zeit-Datei (nennen wir sie mal countdown.bat) sich schließen wenn jemand über das Menü den laufenden Countdown abbricht. Vielen Dank jetzt schon.... Zitieren
Crash2001 Geschrieben 26. November 2012 Geschrieben 26. November 2012 Dafür müsstest du dir eine Schleife basteln und dort dann einmal alle x sekunden runterzählen und jeweils etwas ausgeben. Mit der Schleife das solltest du eigentlich problemlos im Netz finden (müsste ich jetzt auch nach suchen ansonsten). Ich habe jedoch noch einen Tip für dich, wie man das ganze dann zeitlich steuert, so dass es nicht innerhalb 5 Sekunden runterzählt und dann 5 Minuten später erst herunterfährt. Mittels ping 127.0.0.1 -n [Sekunden] >nul kann man mehr oder weniger genau steuern, wann etwas gemacht wird. Dabei ist einfach statt [sekunden] die zu zählenden Sekunden einzusetzen. Da der Output in den "Mülleimer" wandert, stört auch kein Output vom Ping. ping 127.0.0.1 -n 120 >nul macht z.B. eine Pause von 120 Sekunden (+ die Zeit, die der Ping braucht, was pro Ping eigentlich unter 1ms liegen sollte und somit vernachlässigbar ist). Mit der Methode habe ich mir letztens noch einen Pingtester geschrieben, der alle 5 Minuten x Pings an eine Adresse schickt und das Ganze in eine Logdatei packt. Schön mit Datum und Uhrzeit immer noch vor dem Ping hingeschrieben, so dass es nachvollziehbar ist Ansonsten könntest du natürlich auch die Zeit abspeichern und dir in eine Variable schreiben, wann etwas geschehen soll und so lange eine Schleife laufen lassen, bis es übereinstimmt. Es macht in meinen Augen nur keinen Sinn, dies ohne Verzögerung laufen zu lassen, da die Prozessorlast ansonsten unnötig hoch ist. Schliessen sollte sich das Programm eigentlich automatisch, wenn es beendet ist, solange du nicht eingestellt hast, dass das Fenster noch weiter auf bleiben soll (Windows-Einstellung für die "DOS"-Box). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.