Batch-Datei mit sichtbarem Stunden und Minuten Timer der per Tastendruck abgebrochen werden kann (zwei Routinen in einer Batch)?
ich brauche eine Batch.
Beim starten wird gefragt, in wievielen Stunden der PC in den Energiesparmodus wechseln soll.
Die VERBLEIBENDE Zeit sollte IMMER sichtbar sein und die STUNDEN /MINUTEN runterzählen.
Wenn der Timer abgelaufen ist, sollte der PC in den Energiesparmodus gehen.
Desweiteren will ich den Countdown jederzeit wieder abbrechen können um das Programm zu verlassen,
OHNE den PC in den Energiesparmodus zu versetzen..
Am besten wäre es, wenn ich beim Abbechen des Timers nur eine Taste,
zum Beispiel (X) drücken müsste, ohne enter...(Darf gerne, muss aber nicht sein).
Ich habe schon per KI versucht dies alles hinzubekommen, aber leider bleibt der Timer hängen bei der Abbrechen-Abfrage.
@echo off
mode con cols=77 lines=6
chcp 65001>nul
title Countdown zum Energiesparmodus
:start
cls
echo In wie vielen Stunden soll der PC in den Energiesparmodus wechseln?
set /p stunden=
set /a minuten=%stunden%*60
rem Energiesparoptionen auf Höchstleistung setzen
powercfg.exe /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
:countdown
cls
echo Der PC wechselt in %stunden% Stunden und %minuten% Minuten in den Energiesparmodus.
set /a minuten=%minuten%-1
if %minuten% LSS 0 (
set /a stunden=%stunden%-1
set /a minuten=59
)
echo.
echo Drücken Sie 'x', um den Countdown abzubrechen.
set /p eingabe=
if "%eingabe%"=="x" goto :ende
if %stunden% EQU 0 && %minuten% EQU 0 (
echo Der Countdown ist abgelaufen. Der PC wechselt in den Energiesparmodus.
rem Energiesparoptionen auf Ausbalanciert setzen
powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e
rundll32.exe powrprof.dll,SetSuspendState Sleep
goto :ende
)
timeout /t 60 >nul
goto countdown
:ende
echo Countdown abgebrochen.
rem Energiesparoptionen auf Ausbalanciert setzen
powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e