Frage von Razuer, 42

Kann mir einer helfen bei der cmd?

Hier das Script Ich möchte das der Befehl zum Herunterfahren des Rechners um einer bestimmten Uhrzeit ausgeführt wird. Aber er will es nicht machen. Kann mir einer das korrigieren? Ich finde keine Lösung.

:loop if "%time:~0,8%"=="09:42:40" ( Shutdown /s /t 5 ) goto :loop

Antwort
von MarkusGenervt, 13

Der Befehl hat die falsche Syntax und  Befehlsverkettung und steht im Label::

entweder

:loop 
if "%time:~0,8%"=="09:42:40" (
shutdown -s -t 5
)
goto loop

oder

:loop 
if "%time:~0,8%"=="09:42:40" shutdown -s -t 5
goto loop

oder

:loop 
if "%time:~0,8%"=="09:42:40" shutdown -s -t 5 & goto loop

Den unteren einzeiligen Befehl würde ich aber generell vermeiden, da es sein kann, dass "shutdown" oder ein anderer Befahl an dieser Stelle u.U. die gesamte restliche Befehlszeile auswertet.

Außerdem solltest Du den Zeitpunkt nicht auf die Sekunde genau fixieren, da im Falle einer Priority-Unterbrechung der Zeitpunkt verpasst werden kann.

Hinzu kommt, dass diese Lösung sehr viel Prozessorzeit/-last beansprucht und das System daher unnötig belastet.
Ein VBScript wäre zwar umfangreicher im Quelltext, erlaubt aber eine flexiblere und reduzierte CPU-Last.


Antwort
von Etter, 13

Vll. ne blöde Frage, aber warum willst du das als Batch machen? Es wäre vmtl. einfacher eine Aufgabe in der Aufgabenplanung anzulegen.

https://technet.microsoft.com/de-de/library/cc766428(v=ws.11).aspx

Kommentar von MarkusGenervt ,

Stimmt auch wieder. Daran hatte ich gerade nicht gedacht.

Das ist sogar noch CPU-schonender.

Kommentar von Etter ,

Jup.

Ich sehe halt irgendwie keinen Einsatzzweck für so ne Batch :/

Falls man umbedingt etwas variables haben will, kann man die Powershell nutzen, um n geplanten Task zu erstellen:

https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/13/use-powershell-to...

Kommentar von MarkusGenervt ,

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Leider scheint Dein Link tot zu sein.

Ich bin mit Batch aufgewachsen. Powershell ist mir aber einfach zu "individuell", um mich damit zu beschäftigen. Das ist mal wieder so ein typischer Alleingang von Microsoft, was mich inzwischen ziemlich abnervt. Für WMI oder sonstige Objekte nutze ich einfach weiterhin VBScript. Das ist dann doch bei solchen Dingen flexibler. Da muss das Rad nicht schon wieder neu erfunden werden, was dann trotzdem wieder nur unter Windows funktioniert und nicht mal unter WINE.

Inzwischen bin ich über Linux bei cygwin und BASH gelandet. Das ist mal eine ordentliche Skript-Sprache, die wirklich die Bezeichnung "Power" verdient!

Antwort
von panama98, 30

ich kenn nur

shutdown -s -t <Sekunden>

Aber auf eine uhrzeit bezogen, weiß nicht...

Kommentar von Razuer ,

Trotzdem danke wenn du mir helfen könntest

Kommentar von panama98 ,

hab da was gefunden, vlt ist es etwas was du gebrauchen könntest, es ist zwar nicht cmd aber es ist mehr oder weniger das gleiche


http://www.drwindows.de/windows-anleitungen-faq/141-windows-zeitgesteuert-herunt...


PS: das kann man natürlich abwanden und zb etwas anders machen

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten