Befehl programmieren?


26.05.2024, 22:27

Bitte mit Erklärung bitte :)

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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

https://docs.active-directory-wp.com/Usage/How_to_add_a_cron_job_on_Windows/Scheduled_tasks_and_cron_jobs_on_Windows/index.html

unter Linux wäre cron das äquivalent.


Inkognito-Nutzer   26.05.2024, 22:57

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?

Kelec  26.05.2024, 23:05
@Inkognito-Beitragsersteller

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.

Inkognito-Nutzer   26.05.2024, 23:05
@Kelec

ok, danke. Ich meinte grade aber das mit dem cmd, was du als erstes geschrieben hast.

Kelec  26.05.2024, 23:08
@Inkognito-Beitragsersteller

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.

Inkognito-Nutzer   26.05.2024, 23:11
@Kelec

Ach so. Aber dann ist das ja einfach über den Task Schedular oder?

Inkognito-Nutzer   26.05.2024, 23:16
@Kelec

Ist der eigentlich direkt von Microsoft?

Kelec  26.05.2024, 23:17
@Inkognito-Beitragsersteller

Der ist fix bei Windows Integriert ja, also den musst du nicht mal installieren. Im Deutschen nennt sich das "Aufgabenplanung"

Inkognito-Nutzer   26.05.2024, 23:19
@Kelec

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:

überprüfen ob das gewünschte eingetragen wurde kannst Du das mit:

taskschd.msc

Bild zum Beitrag

Bild zum Beitrag

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

Bild zum Beitrag

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/

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
 - (App, Windows, Webseite)  - (App, Windows, Webseite)  - (App, Windows, Webseite)