im bequemsten Fall trägst Du einfach per "schtask" eine Aufgabe in die Aufgabenplanung ein:
schtasks /create /tn "Webseite starten" /tr "cmd /k start \"\" \"https://www.google.de/\" " /sc ONCE /sd %date% /st 14:00 /f
- /tn "AufgabenName" legt fest wie die Aufgabe im Taskplaner zu finden ist.
- /tr "Befehl/Script-/Programmpfad Parameter" beschreibt was wie Aufgerufen werden soll dabei ist zu beachten, das alle Quotes innerhalb der übergebenen Befehlszeile durch einen Backslash zu maskieren (escapen) sind:
Befehlszeile : cmd /k start "" "Dateipfad"
Quote maskiert: "cmd /k start \"\" \"Dateipfad\""
- /sc ONCE Nur einmalig anwenden
- /sd %date% oder /sd 30.05.2024 Datum des (aktuellen) Startages
- /st 14:00 Startzeit (bei einstelligen Stunden eine 0 voranstellen (07:09)
Dokumentation:
- https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/schtasks-create
- https://ss64.com/nt/schtasks.html
überprüfen ob das gewünschte eingetragen wurde kannst Du das mit:
taskschd.msc
Wenn mehrere Befehle Ausführen möchtest empfiehlt sich eine Batch:
Meine14UhrAufgabe.cmd
@echo off
rem umlaute anzeigen...
chcp 65001 >nul
rem erkennen ob die Batch per klick gestartet wurde oder per Aufgabenplan (also Argumente übergeben wurden)
if "%~1" neq "" goto :runPlaned
title Plane Aufgabe
set "StartTag=%Date%" & rem heute
set "StartZeit=14:00" & rem einstellige Werte mit führender 0 ! (09:03)
set "AufgabenName=Meine Batchaufgabe"
set "BatchArgumente=Planed" &rem in diesen fall eigentlich egal was Du als Argument übergibst (ebenso könntest d X oder Rumpelstilzche angeben), das Argumen diehnt nur der erkennun ob die Bacht vo hand oder vom Planer gestartet wurde (beim start der Batch mit der Mouse wird in %~1 kein Argument ("") übergeben)
rem die Aufgabe eintragen (die Ersetzungsvariable %BatchArgumente:"=\"% ersetzt automatisch eventuelle " durch \")
schtasks /create /tn "%Aufgabenname%" /tr "\"%BatchPfad%\" %BatchArgumente:"=\"% " /sc ONCE /sd %StartTag% /st %StartZeit% /f
rem zur Demo: Aufgabenplanung anzeigen
start "" taskschd.msc
rem zur Demo: warte 10 sekunden zum schließen
timeout 10
rem hier ist der Selbstregistrierungsteil der Batch zuende...
exit /b
:runPlaned
rem hier kommt alles hin, was geplant zu dieser Aufgabe getan werd soll
echo Hallo ich bin die Aufgabe
echo ich starte jetzt "GuteFrage im Standardbrowser"
start "" "https://www.gutefrage.net/"
timeout 10
exit /b
es geht natürlich auch ganz primitiv per Polling:
TimePolling.cmd
@echo off
chcp 65001 >nul
set "StartTime=14:00"
set "StartTime=04:55"
echo Warte bis %StartTime% ...
:loop
set "CurrentHourMinute=%time:~0,5%" &rem erste 5Sellen der Zeitangabe
set "CurrentHourMinute=%CurrentHourMinute: =0%" &rem Leerzeichen zu 0 tauschen
if "%CurrentHourMinute: =0%" neq "%StartTime%" (
rem wenn die Zeiten nicht übereinstimmen....
timeout 10 >nul &rem 10 Sekunden in aller stille warten (bis zu 9 Sekunden Ungenau ,kleienre Werte machen den Start genauer)
goto :loop &rem an den Anfang der Goto-Schleife springen
)
rem hier alles was passieren soll
echo Hallo ich bin die Aufgabe
echo ich starte jetzt "GuteFrage im Standardbrowser"
start "" "https://www.gutefrage.net/"
echo Tschüßikowskie...
timeout 10
exit /b
Das ist jedoch nicht gerade Resourcenfreundlich und die Batch muss bis zur Aufgabe "offen" bleiben.
Eigentilch wäre Powershell moderner als Batch, aber da man nie weiß, ob der Nutzer das Systemeigene Powershell 5.1 nutzt oder mit (aktuell) Powershell 7 arbeitet.
Die Abeit mit dem Scheduler unterscheidet sich in dieser hinsicht gewaltig und das wollte ich Dir nicht antun.
https://sid-500.com/2022/08/17/how-to-include-your-powershell-7-scripts-in-task-scheduler/