tyres91
Goto Top

Auto Shutdown mit Zeit und Uhrzeit Ausgabe

Batch Datei soll nach bestimmter Zeit den PC herunterfahren und alles Tasks killen. Zusätzlich soll eine Fenster errscheinen in dem Steht nach wie viel Sekunden der PC heruntergefahren wird und die passende Uhrzeit

Tag

Wollte mir eine kleine Batch Datei anlegen mit den Funktionen:

- nach bestimmter Zeit den PC herunterfahren und alles Tasks killen
- ein Fenster soll errscheinen in dem Steht nach wie viel Sekunden der PC heruntergefahren wird und die passende Uhrzeit.

Dürfte eigentlich kein Problem sein aber i-wie bekomm ichs net hin.


Mein Ansatz:

Zeiteingeben
---------------------
set time=2500   




---------Variablen-------------
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set stunde=%time:~0,2%
set minute=%time:~3,2%


----Shutdown---
shutdown -a -t %time%


-----Funktion------
set /a minuten+=%time%
if %minuten% GEQ 60 set /a stunden+=1 & set /a minuten-=60
if %stunden% GEQ 24 set /a stunden-=24


---Ausgabe---
echo Der PC wird nach %time% Sekunden heruntergefahren. Also um %stunde%:%minute% Uhr


MfG

Tyres

Content-Key: 164918

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

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

Mitglied: 60730
60730 Apr 20, 2011 at 04:25:45 (UTC)
Goto Top
moin,

---
eignet sich nicht dazu, kommentare in einer Batch zu hinterlegen (Rem)
Zeiteingeben
ist auch "kein" erkannter Befehl - Der Parameter Time jedoch schon eine Systemweit benutzte Variable.
dein Set Time gehört auch zu den Variablen - wennn du das schon so sortiert hast.


set jahr
usw. benutzt du doch garnicht? Wozu dann die Zeilen /Variablen

shutdown -a
bedeutet doch "breche einen vorher gesetzten Shutdown ab".

-----Funktion------
  • das läuft alles nachdem shutdown ab. Und ist so in dem Zusammenhang auch unnötig.

shutdown -f "orce"^
beendet alle tasks und fährt runter.

Gruß
Member: Nagus
Nagus Apr 20, 2011 at 06:19:54 (UTC)
Goto Top
Komfortabler geht es mit der GuteNacht.exe.

Google hilft in diesem fall

kleines Tool mit dem du festlegen kannst ob nach einer Zeit oder zu einem bestimmten Zeitpunkt der PC herunter gefahren werden soll.

Ansonsten hat TimoBeil wie immer recht ... auf die erde werf und tief verbeug face-smile

Nagus
Member: Tyres91
Tyres91 Apr 20, 2011 at 20:30:12 (UTC)
Goto Top
Genau so eine Antwort hab ich befürchtet

Die ----Ausgabe--- etc. hab ich nur hier zur übersicht eingebaut.

Die Variable jahr hab ich nicht mehr drinne wusste nur noch nicht genau ob ich sie noch mit einbaue oder nicht.

Den shutdown Befehl hab ich geändert.

Ich möchte halt keine Exe benutzen sondern es auch verstehen was da passiert.

Ich weiß das ich nicht perfekt programmiere aber jder fängt ja mal klein an.


MfG

Tyres
Mitglied: 99045
99045 Apr 20, 2011 at 20:35:52 (UTC)
Goto Top
Hi,

sieh dir in der Konsole (Eingabeaufforderung) die Hilfe zu shutdown mit
shutdown /?
an, da steht eigentlich alles, was du wissen musst und machen kannst. Den ganzen andern Quatsch drumrum kannst du dir schenken, der Parameter -t erwartet die Angabe von Sekunden, wobei eine Stunde 3600 und ein Tag 86400 Sekunden hat.
Gruß
Mitglied: 60730
60730 Apr 21, 2011 at 07:41:29 (UTC)
Goto Top
Moin,

Zitat von @Tyres91:
Genau so eine Antwort hab ich befürchtet
  • welche von den vielen?
Die ----Ausgabe--- etc. hab ich nur hier zur übersicht eingebaut.
  • und ich schrub dir, dass die "so" zwar der Übersicht dienen, aber im echten Script nur Fehlermeldungen bringen.

Die Variable jahr hab ich nicht mehr drinne wusste nur noch nicht genau ob ich sie noch mit einbaue oder nicht.
  • Beim batcheln ist es wie beim Webdäseinön... Mache keinen Abzweig für irgendwas, was in Zunkunft vielleicht mal genutzt werden könnte.
Den shutdown Befehl hab ich geändert.
  • Mit welchem Ergebnis?

Ich möchte halt keine Exe benutzen sondern es auch verstehen was da passiert.
  • Mit anderen Worten, dui hast dir (war ja eh klar) ein bestehendes Script geangelt und baust das um - so haben wir alle mal angefangen.

Ich weiß das ich nicht perfekt programmiere aber jder fängt ja mal klein an.
  • und ich hab dir erstmal die offensichtlichen Kleinigkeiten genannt, mit der Erwartung, du setzt Sie um und meldest dich dann wieder mit der revisionierten Version.


  • und wegen klein anfangen - es gibt Momente, da nehme ich mir ein Blatt Papier und skizziere, was ich am Ende haben will.
  • dann nehme ich das Papier beiseite und male ein Flussdiagramm.
  • wenn mir das gefällt, dann kritzel ich die Befehle in den Editor und lasse das laufen.
  • manchmal spare ich mir das alles - und tipp einfach so eine Bätch zusammen.

Ergo:

* nach bestimmter Zeit den PC herunterfahren und alles Tasks killen
  • wie ist diese "bestimmte Zeit genau zu verstehen? - immer die gleiche Uhrzeit, immer der gleiche Zeitpunkt (xx sekunden nachdem), ein vom Benutzer variabel gestaltbarer Wert?

- ein Fenster soll errscheinen in dem Steht nach wie viel Sekunden der PC heruntergefahren wird und die passende Uhrzeit.
  • und das wird dann schon wieder kompliziert - viel zu kompliziert für den ersten Bätch.

  • Zur Erinnerung - der Counter, wann die Kiste heruntergefahren wird - wird via Shutdown selber erzeugt und aktualisiert.
  • eine Möglichkeit die Uhrzeit anzuzeigen, wann das passiert - kennt Shutdown nicht. - Von daher mußt du an dem Punkt abstriche machen.
Entweder zwei Fenster - eines mit der Uhrzeit und den Counter von Shutdown - oder einen komplett neu gestaltetes Fenster mit beiden Infos zusammen, komplett selber schreiben, mit allen Risiken und Nebenwirkungen.


Gruß
Member: no0Noboody0on
no0Noboody0on Apr 22, 2011 at 22:03:51 (UTC)
Goto Top
Hier versuche es mal hiermit hast zwar auch keine zeit anzeige in dem sinne wie du es willst aber eine auftargsliste die du anzeigen lassen kannst nur geht leider pos.2 nicht das starten von programmen keine ahnug wo da mein fehler ist hatte noch keine zeit (lust) ihn zu suchen aber alles ander geht und du musst die zeit nicht in sec. angeben sondern beispielsweiße so 12:05 aber steht alles dabei viel spaß mit face-smile

[Edit] Fehler Pos. 2 ist behoben starten von Programmen geht jetzt auch [/Edit]

@echo off
color 0A
echo.
echo Bitte w„hlen sie eine Option...
echo.
echo 1 - Computer Herunterfahren / Neustarten.
echo 2 - Ein Programm / Prozess Starten.
echo 3 - Ein Programm / Prozess Beenden.
echo 4 - Alle Auftr„ge l”schen.
echo 5 - Einen Auftrag l”schen.
echo 6 - Auftragsliste anzeigen.
echo 7 - Exit.
echo.
set /p ziffer=Ziffer Eingeben:
if "%ziffer%"=="1" goto start1  
if "%ziffer%"=="2" goto start2  
if "%ziffer%"=="3" goto start3  
if "%ziffer%"=="4" goto start4  
if "%ziffer%"=="5" goto start5  
if "%ziffer%"=="6" goto start6  
if "%ziffer%"=="7" goto start7  

cls
goto start


:start1
cls
:rem-----------------------------------------------------start1-----------------------------------------------------

echo.
echo -------------------------------------------------------------------------------
echo Computer Herunterfahren / Neustarten.
echo -------------------------------------------------------------------------------
echo.
echo Zeit eintragen (Bsp.: 12:05)...
echo Tag angeben wenn es nicht der selbe ist! (Bsp.:Mo,Di,Mi,Do,Fr,Sa,So)
echo und ausw„hlen ob er Herunterfahren soll od. einen Neustart machen soll
echo.
set /p zeit=Zeit:
set /p tag=Tag:
echo.
echo .Soll der Computer neu gestartet werden nach dem Herunterfahren j/n ?
set /p neustart=[J/N]:
if "%neustart%"=="j" set option=-r  
if "%neustart%"=="n" set option=-s  
if "%neustart%"=="j" set comentar=Auto Neustart Zeit %zeit% gew„hlt  
if "%neustart%"=="n" set comentar=Auto Shutdown Zeit %zeit% gew„hlt  

cls
echo.
echo -------------------------------------------------------------------------------
echo %comentar%
at %zeit% /next:%tag% shutdown -f  %option%
echo -------------------------------------------------------------------------------
echo.
:rem-----------------------------------------------------shutdown-----------------------------------------------------

echo.
echo Sie k”nnen nun das Programm Beenden alle Auftr„ge werden od. sind Ausgefhrt.
echo.
echo Zum Fortfahren!
pause
cls

goto start

:start2
:rem-----------------------------------------------------start2-----------------------------------------------------

cls
echo.
echo -------------------------------------------------------------------------------
echo Ein Programm / Prozess Starten.
echo -------------------------------------------------------------------------------
echo.
echo Zeit eintragen (Bsp.: 12:05)
echo Tag angeben wenn es nicht der selbe ist! (Bsp.:Mo,Di,Mi,Do,Fr,Sa,So)
echo.
set /p zeit=Zeit:
set /p tag=Tag:
echo.
echo.
echo Programm eintragen...
echo (Bsp.: WinTV.exe) WICHTIG GROá UND KLEIN SCHREIBUNG!!!
echo.

SET /p "dieZuSuchende=Programm:"  

echo Die %dieZuSuchende% wird gesucht und gestartet bitte warten....

IF not defined PfadGefunden FOR /F "delims=" %%i in ('dir /b /s "c:\%dieZuSuchende%" ^2^>Nul') do Set "PfadGefunden=%%~dpi"  

If not defined Pfadgefunden (
   echo Datei "%dieZusuchende%" nicht gefunden.  
) ELSE (
  Echo Datei "%dieZusuchende%" im Pfad "%PfadGefunden%" gefunden.  
)

cls
echo.
echo -------------------------------------------------------------------------------
echo Prozzes Startet um %zeit% vom Pfad %PfadGefunden%%dieZusuchende%
at %zeit% /interactive /next:%tag% "%PfadGefunden%%dieZusuchende%"  
echo -------------------------------------------------------------------------------
echo.
:rem-----------------------------------------------Prozess Starten----------------------------------------------------

echo.
echo Sie k”nnen nun das Programm Beenden alle Auftr„ge werden od. sind Ausgefhrt.
echo.
echo Zum Fortfahren!
pause
cls

goto start

:start3
:rem-----------------------------------------------------start3-----------------------------------------------------

cls
echo.
echo -------------------------------------------------------------------------------
echo Ein Programm / Prozess Beenden.
echo -------------------------------------------------------------------------------
echo.
echo Zeit eintragen (Bsp.: 12:05)...
echo Tag angeben wenn es nicht der selbe ist! (Bsp.:Mo,Di,Mi,Do,Fr,Sa,So)
echo.
set /p zeit=Zeit:
set /p tag=Tag:
echo.
echo.
echo PID nummer od. den Namen des Programm / Prozess eingeben 
echo (Bsp1.: 1724, Bsp.: WinTV.exe)  WICHTIG GROá UND KLEIN SCHREIBUNG!!!
echo.
set /p pid=Name:

cls
echo.
echo -------------------------------------------------------------------------------
echo Prozess %pid% wird um %zeit% Beendet
at %zeit% /next:%tag% taskkill /F /IM "%pid%"  
echo -------------------------------------------------------------------------------
echo.

:rem----------------------------------------------Prozess Beenden.---------------------------------------------------

echo.
echo Sie k”nnen nun das Programm Beenden alle Auftr„ge werden od. sind Ausgefhrt.
echo.
echo Zum Fortfahren!
pause
cls

goto start

:start4
:rem-----------------------------------------------------start4-----------------------------------------------------

cls
echo.
echo -------------------------------------------------------------------------------
echo Alle Auftr„ge l”schen.
echo -------------------------------------------------------------------------------
echo.
at /DELETE

cls
echo.
echo -------------------------------------------------------------------------------
echo Alle Auftr„ge sind gel”scht.
echo -------------------------------------------------------------------------------
echo.


:rem------------------------------------------Alle Aufträge l”schen----------------------------------------------

echo.
echo Sie k”nnen nun das Programm Beenden alle Auftr„ge werden od. sind Ausgefhrt.
echo.
echo Zum Fortfahren!
pause
cls

goto start

:start5
:rem-----------------------------------------------------start5-----------------------------------------------------

cls
echo.
echo -------------------------------------------------------------------------------
echo Einen Auftrag l”schen.
echo -------------------------------------------------------------------------------
echo.
echo Identifikationsnummer eintragen (Bsp.: 7)
echo.
set /p id=Nummer:

cls
echo.
echo -------------------------------------------------------------------------------
echo Der Auftrag mit der ID:%id% wurde gel”scht
at %id% /DELETE
echo -------------------------------------------------------------------------------
echo.

:rem------------------------------------------Einen Auftrag löschen.----------------------------------------------

echo.
echo Sie k”nnen nun das Programm Beenden alle Auftr„ge werden od. sind Ausgefhrt.
echo.
echo Zum Fortfahren!
pause
cls

goto start

:start6
:rem-----------------------------------------------------start6-----------------------------------------------------

cls
echo.
echo -------------------------------------------------------------------------------
echo Auftragsliste...
echo -------------------------------------------------------------------------------
echo.
echo -------------------------------------------------------------------------------
at
echo -------------------------------------------------------------------------------
echo.

:rem------------------------------------------Auftragsliste anzeigen.----------------------------------------------

echo.
echo Zum Fortfahren!
pause
cls

goto start

:start7
:rem-----------------------------------------------------start7-----------------------------------------------------

exit

:rem------------------------------------------------------Exit.--------------------------------------------------------

Und hier kannst dir noch ne verbesserte version von mir holen aber immer noch mit dem fehler pos.2 ist nur das menü überarbeitet man muss nicht mehr bestädigen und optisch.

http://thecheaterbase.kilu.de/downloads/

[Edit] Fehler Pos. 2 ist behoben starten von Programmen geht jetzt auch [/Edit]