Befehl programmieren?
Hallo,
ist es unter Windows möglich, einen Befehl programmieren, eine Webseite aufzurufen? Z.B. dass ich einstelle, dass um 14:00 google.de aufgerufen wird? Nur mal so als Einstieg zum Befehle programmieren..
Danke und LG
Bitte mit Erklärung bitte :)
2 Antworten
Prinzipiell ja. Wie genau man das Umsetzt hängt von der Sprache ab die du verwenden willst.
Im wesentlichen ist der Algorithmus nur warte nach dem Programmstart bis 14:00 und öffne den Browser zB für den Firefox wäre der CMD Befehl dazu:
firefox -new-tab "https://www.useotools.com"
Du kannst solche Aufgaben unter Windows aber auch einfach mit dem TaskSchedular lösen
unter Linux wäre cron das äquivalent.
Wenn du es mit dem Schedular machst wird eben genau das Command automatisch ausgeführt wenn der Computer zu dieser Uhrzeit läuft.
Manuell musst du das nicht machen du solltest eben nur prüfen ob der Befehl bei dir so auch funktioniert. Es kann durchaus sein, dass du anstatt Firefox den absoluten Pfad zur firefox.exe angeben musst.
ok, danke. Ich meinte grade aber das mit dem cmd, was du als erstes geschrieben hast.
Das ist nur der Befehl der dir den Firefox startet der sagt nicht zu welcher Uhrzeit noch sonst was.
Du musst ein Programm in einer Sprache deiner Wahl schreiben welches um 14:00 diesen Befehl ausführt.
Ach so. Aber dann ist das ja einfach über den Task Schedular oder?
Ja der Task Schedular soll um 14:00 eben genau diesen Befehl ausführen und dann macht er das auch.
Der ist fix bei Windows Integriert ja, also den musst du nicht mal installieren. Im Deutschen nennt sich das "Aufgabenplanung"
Okay, dann schau ich mir das mal an. Danke dir für deine Mühe & Zeit!
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/



Danke!
Und dann wird das automatisch gemacht, also der Browser geöffnet, wenn ich das mit dem CMD Befehl mache? Oder müsste ich das manuell machen?