gartendwarf
Goto Top

Problem mit Shutdown Batch

Hi ich bin ein Batch-Newbie und brauche Hilfe bei folgenden Problem:

Ich möchte mir eine Batchdatei erstellen, die helfen kann notwendige Pausen einzuhalten.
Also ich hatte mir etwas gedacht, dass wie ein Timer im Hintergrund läuft und nach einer gewissen Zeit eine Ausgabe macht, wie:
'Du bist jetzt solange %timevariable% vor dem Pc, schalt mal ab.'.
Falls dieser Bitte nicht nachgekommen wird, soll wieder nach einer gewissen Zeit eine Meldung kommen 'Du brauchst mal eine Pause! Der Computer fährt in 10,9,8,7,6,5,4,3,2,1 sec runter' .

Ich weiß nicht ob das richtig ist, aber ich dachte mir, dass man als Grundlage den shutdown -s -f -t Befehl nutzen könnte, wobei -t gleich der notwendigen Zeitvariable sein könnte und dann mit Hilfe des IF- Befehls der Text ausgeben wird.
Nach diesem Muster:
@echo off
shutdown -s -f -t 9000
IF <LEQ> t == 1800 GOTO WAHR
GOTO WEITER
:WAHR echo Du bist jetzt solange %timevariable% vor dem Pc, schalt mal ab.
GOTO WEITER
:WEITER
IF <LEQ> t ==10 GOTO WAHR2
:WAHR2 Echo Du brauchst mal eine Pause! Der Computer fährt in t sec runter
Wobei sich t ständig ändern soll, aber nicht als neue Zeile, sondern in der selben bleiben soll.
Außerdem soll falls es möglich ist, sobald die Batchdatei geöffnet wird kein Fenster zu sehen sein, aber sobald die Ausgabe kommt, soll es sofort in den Vordergrund kommen oder jedes andere Fenster minimieren und nach einer kurzen Zeit wieder verschwinden.
Also im Grunde ist mein Hauptproblem, wie der IF-Befehl auf die t Variable des Shutdown-Befehls zugreifen kann, der Rest würde sich dann von selbst erledigen.

Vielen Dank für eure Hilfe

Content-Key: 172724

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

Printed on: April 16, 2024 at 18:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Sep 07, 2011 at 12:13:44 (UTC)
Goto Top
moin Gartendwarf,

die Variable t lasst sich nur abfragen wenn diese Variable existent ist.
-t ist eine Option bzw ein Parameter des Shutdown Befehls.

Batch ist auch minimiert in der Start-/Taskleiste zu sehen.
Hier VBScript - Shutdowndialog mit Timer gibt es ein VBS was nach einer gewissen Zeit eine andere Anwendung startet zB. Shutdown oder eine batch welche ein paar Zeilen ausgibt.
sieh Dir mal if /? am CMD-Promt an.

Gruß Phil
Member: laster
laster Sep 07, 2011 at 14:37:52 (UTC)
Goto Top
Hallo,

ich weiss ja nicht, ob Du Dich spielerisch dem BatchScripting nähern willst, aber in Windowszeiten solltest Du die problematik mit den Energieoptionen (Systemsteuerung) lösen.

vG
LS
Mitglied: 99045
99045 Sep 07, 2011 at 16:02:46 (UTC)
Goto Top
Mumpitz. Wenn derjenige den du ärgern willst, irgendwas im Kopf hat, macht er einfach einen Neustart.
Member: pieh-ejdsch
pieh-ejdsch Sep 07, 2011 at 16:08:49 (UTC)
Goto Top
moin Kaputtnick,

Kein Mumpitz
wenn eine richtige Überwachungssoftware Oder Überwachungsbatch die ganze Sache Übernimmt sollte es auch nicht mit einem Neustart umgehbar sein.

Vllt geht es auch um PausenZeiten, welche von den Computernutzern laut Anweisung zu erfolgen hat.

PS. daher ist das Sperren der ArbeitsOberfläche für die PauseZeit eine Bessere Option als der komplette Shutdown

Gruß Phil
Mitglied: 99045
99045 Sep 07, 2011 at 16:15:09 (UTC)
Goto Top
Mumpitz. Besonders wenn jeder hier Antworten bekommt, obwohl wesentliche infos, die man zum vernüftigen Beantworten eines Problems benötitgt fehlen. Darin bist du der gruße Meister.

Ich habe keine Lust auf Diskussionen. Schreib du das, was du für richtig hältst und lass mich das schreiben, was ich für richtig halte und lass mich bitte ansonsten in Ruhe.
Member: pieh-ejdsch
pieh-ejdsch Sep 07, 2011 at 20:08:22 (UTC)
Goto Top
moin Kaputtnick,

[OT]
Zitat von @99045:
Mumpitz. Besonders wenn jeder hier Antworten bekommt, obwohl ...
Ich habe keine Lust auf Diskussionen.

schau mal was weiter oben vor Thread-Ansicht zu lesen ist - Diskussionsverlauf (... Kommentare)

Du hast keine Lust auf Diskussion - Dann mach bitte auch NICHT mit in diesem Diskussionsverlauf
[/OT]

Danke
Gruß Phil
Mitglied: 99045
99045 Sep 07, 2011 at 20:38:29 (UTC)
Goto Top
Wo und was ich schreibe, musst du schon mir überlassen. Schau du mal lieber, wem ich geschrieben habe, du warst gar nicht angesprochen. Deine Ansichten kannst du dem TE gern mitteilen, aber ich lass mir von niemand über den Mund fahren und vorschreiben, was ich zu posten habe, Herr Oberlehrer..

EOD
Member: Gartendwarf
Gartendwarf Sep 08, 2011 at 17:42:36 (UTC)
Goto Top
Hi ich habe mit Hilfe des anderen Beitrags mir etwas erstellt, was zu funktionieren scheint. Hier ist der fertige Code
Computerzeit = 7200000 ' zwei Stunden in Millisekunden  
Verlaengerung = 1800000
Wscript.Sleep Computerzeit
	Set ws = CreateObject("WScript.Shell")   
	a = ws.popup( "Du bist jetzt seid 2 Stunden vorm Pc. Schalt mal ab" & vbLf,20, "Herunterfahren")  
Wscript.Sleep Verlaengerung
	a = ws.popup( "Du warst jetzt 2 1/2 Stunden vorm Pc. Du brauchst mal eine Pause!",10,"Runterfahren")  
        Set oShell = WScript.CreateObject("WScript.Shell")  
	oShell.Run "cmd \c shutdown -s -t 10 -f", 0  
	Wscript.Quit

P.S. Wie habt ihr das mit den Textboxen gemacht?

[Edit Biber] Codeformatierung [/Edit]
Member: Gartendwarf
Gartendwarf Sep 08, 2011 at 17:48:58 (UTC)
Goto Top
Das ist an mich selber gerichtet und hat den Effekt einer Zwangsunterbrechung, als kleine Denkerinerrung