kostenloser Webspace werbefrei: lima-city


Script zum automatischen Herunterfahren

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    v*******0

    Hallo (hoffe ich bin im richtigen Unterforum),

    ich habe im Netz ein Script gefunden um meinen PC nach X Stunden automatisch herunter zu fahren. Funktioniert soweit auch alles nur kommt das Script nicht mit halben Zahlen klar. Sprich wenn ich 1,5 oder 1.5 eingebe, funktioniert es nicht wie gewünscht in 1,5 Stunden sondern der PC wird sofort heruntergefahren.

    Ich habe schon überlegt mit Minuten statt Stunden zu arbeiten, allerdings keine elegante Lösung für mich. Deshlab die Frage an die Community ob das Problem

    a) mit zwei Eingaben zu lösen ist. Sprich Eingabe der Stunden, ENTER, Eingaben der Minuten, ENTER, Script wird ausgeführt

    b) mit Eingabe einer festen Uhrzeit (z.B. 16:35 Uhr) zu lösen ist.


    Hier der Code für die "auto_shutdown.bat"

    @echo off
    set /p eingabe="Stunden bis zum automatischen Herunterfahren: "
    set /a sekunden=%eingabe%*3600
    shutdown -s -t %sekunden%
    exit
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. @echo off
    set /p eingabe="Stunden bis zum automatischen Herunterfahren: "
    set /a sekunden=eingabe*3600
    shutdown -s -t %sekunden%
    exit


    So sieht das besser aus.
    Scheinbar können aber keine Kommazahlen eingegeben werden.

    Beziehungsweise:
    shutdown bietet mit einem der Parameter eine graphische Oberfläche. Die kannst du dir mal anschauen, ob diese deinen Anforderungen entspricht!

    Beitrag zuletzt geändert: 4.8.2017 17:22:46 von oportal
  4. simple-otr-mirror

    simple-otr-mirror hat kostenlosen Webspace.

    Du kannst dir das mit dem herunterfahren des PCs auch selber basteln.
    Das geht mittels Windows-API.
    Wenn du das hast, kannst du dir deine eigene kleine Anwendung dazu basteln.

    Du brauchst folgende Windows-APIs:

    LookupPrivilegeValue
    OpenProcessToken
    AdjustTokenPrivileges
    CloseHandle
  5. Du kannst auch einfach selber das CMD öffnen und dort:
    shutdown -s -f -t 3600
    eingeben. 3600 Sekunden entspricht hier die 1 Stunde. Demnach müsste man bei einer Zeit von 1,5h dann einfach 5400 Sekunden eingeben. Muss man auch nicht selber ausrechnen man kann in google beispielsweise einfach
    1h in sekunden
    eingeben und google berechnet die benötigten Sekunden. Das heißt ein extra Tool wird gar nicht benötigt. Des Weiteren gibt Windows dann auch an wann es heruntergefahren wird.

    Solltest du den Vorgang doch abbrechen wollen oder vllt. den Zeitpunkt ändern wollen gibt einfach:
    shutdown -a
    im CMD ein.

    Beitrag zuletzt geändert: 20.8.2017 22:20:00 von funplace
  6. h***********r

    funplace schrieb:
    Du kannst auch einfach selber das CMD öffnen und dort:
    shutdown -s -f -t 3600
    eingeben. 3600 Sekunden entspricht hier die 1 Stunde. Demnach müsste man bei einer Zeit von 1,5h dann einfach 5400 Sekunden eingeben. Muss man auch nicht selber ausrechnen man kann in google beispielsweise einfach
    1h in sekunden
    eingeben und google berechnet die benötigten Sekunden. Das heißt ein extra Tool wird gar nicht benötigt. Des Weiteren gibt Windows dann auch an wann es heruntergefahren wird.

    Solltest du den Vorgang doch abbrechen wollen oder vllt. den Zeitpunkt ändern wollen gibt einfach:
    shutdown -a
    im CMD ein.

    Es geht ja darum das mehr oder weniger automatisch und einfacher geht. Sein Script rechnet hier gleich von Stunden auf Sekunden um. Ohne Google.


    Du kannst dir das mit dem herunterfahren des PCs auch selber basteln.
    Das geht mittels Windows-API.
    Wenn du das hast, kannst du dir deine eigene kleine Anwendung dazu basteln.

    Du brauchst folgende Windows-APIs:

    LookupPrivilegeValue
    OpenProcessToken
    AdjustTokenPrivileges
    CloseHandle

    Absolut unnötig und zu kompliziert für das eigentliche Vorhaben. Es geht darum einen Rechner auszuschalten. Nicht mehr und nicht weniger

    Beitrag zuletzt geändert: 21.8.2017 0:52:59 von horstexplorer
  7. oportal schrieb:
    Scheinbar können aber keine Kommazahlen eingegeben werden.

    Jo, da hatte "set" schon ewig Probleme weil es nur mit Integer-Werten arbeiten kann.
    Da gibt es dann wilde Basteleien über VisualBasic-Scripts, etc.

    Leider ist jetzt etwas unklar was genau du suchst:
    - Eine .NET-Lösung: Wäre vom Forum her passend
    - Eine Batch-Lösung: Wäre vom Eingangspost passend
    - Egal was, Hauptsache es tut

    Für letzeres habe ich fix mal ein Powershell-Script gebaut. Das tut zumindest mit "1.5", etc.
    Bei Bedarf auch die Stunden als Parameter der per Prompt abgefragt wird wenn nicht explizit angegegen.
    try
    {
        [Single]$shutdownTimer = Read-Host "Shutdown-Timer in Stunden"
    }
    catch
    {
        Write-Host "Kein gültiger Wert"
        exit
    }
    
    $shutdownTimer *= 3600
    &shutdown /s /f /t $shutdownTimer


    Beitrag zuletzt geändert: 23.8.2017 1:44:04 von muellerlukas
  8. oportal schrieb:
    @echo off
    set /p eingabe="Stunden bis zum automatischen Herunterfahren: "
    set /a sekunden=eingabe*3600
    shutdown -s -t %sekunden%
    exit



    Würde da noch -f hinzufügen. Sonst kann es durch bestimmte Programme zu einem Abbruch kommen :thumb:
  9. -f ist bei Win10 absolut erforderlich

    shutdown -s -f -t 36000

    kann auch im explorer und im besten Fall in der taskbar Adresszeile eingegeben werden
    (spart Win + r cmd )
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!