Wie erstelle ich eine Batchdatei, die beim Anklicken eine EXE-Datei startet, wenn Sonntag ist?
Ich möchte nicht, dass die EXE-Datei ausgeführt wird, wenn es ein anderer Tag ist. Wenn es zum Beispiel Freitag ist, möchte ich, dass es sich einfach selbst schließt und nichts tut.
Außerdem wäre es schön, wenn es möglich wäre, es im Hintergrund auszuführen, ohne eine Eingabeaufforderung anzuzeigen.
Antwort1
Task Scheduler
Hierzu können Sie Folgendes verwenden : Öffnen Task Scheduler > Create Task
Im geöffneten Dialog können Sie nun die Eigenschaften und Bedingungen für die Ausführung der Aufgabe festlegen sowie den auszuführenden Job/die auszuführende Anwendung definieren.
Antwort2
Tatsache ist, dass Sie eine erweiterte Befehlsfunktion date
(Wochentag) verwenden möchten, die Windows im DOS-Batch nicht verwalten kann.
Hierzu würde ich eine Binärdatei eines Drittanbieters verwenden date.exe
, die aus der Unix-Welt stammt und unter Windows funktioniert:UnxUtils(das ist eine Sammlung gängiger GNU Unix-Dienstprogramme, die unter Windows ausgeführt werden).
Laden Sie es herunter vonHier(UnxUtils.zip).
Dann extrahieren Sie es und löschen Sie alle Dateien außerdate.exe
Schreiben Sie dann eine Batchdatei wie diese (vorausgesetzt, date.exe
sie befindet sich auf c:\
):
@ECHO OFF
REM Sunday is 0
for /f "delims=" %%a in ('c:\date.exe +%%w') do set DayOfWeek=%%a
if %DayOfWeek% == 0 (
cmd /c c:\path\to\exe\file.exe
) else (
echo Do Nothing
)
Sie können es in den Windows-Startordner legen und es funktioniert auf allen Windows-Versionen, unabhängig davon, wo auf der Welt Sie sich befinden.
Auch(viel besser), damals waren DOS-Batch-Programme schon etwas veraltet. Da Sie von Windows 8 sprechen, würde ich Powershell in Betracht ziehen (kann bei Bedarf von einer Batch-Datei aufgerufen werden):
$a = Get-Date
if($a.DayOfWeek -eq "Sunday") {
cmd /c c:\path\to\exe\file.exe
}
Hier ist keine Binärdatei von Drittanbietern erforderlich: Powershell ist leistungsstark ;)
Antwort3
EntsprechendHIERist es unmöglich, eine Batchdatei mit der integrierten Eingabeaufforderung auszuführen, ohne dass ein Fenster angezeigt wird.
Schließlich landete ich beiDASSeite und verwendete die Informationen, um eine Batchdatei zu erstellen, die das tut, was Sie möchten. Das Batchskript überprüft die Uhrzeit. Wenn es nicht der richtige Tag ist, blinkt die Eingabeaufforderung rot und wird beendet. Wenn es der richtige Tag ist, blinkt sie grün und startet Ihr Programm, während es beendet wird.
Alle im obigen Absatz beschriebenen Vorgänge geschehen in weniger als einer Sekunde (abhängig von der Geschwindigkeit Ihres Computers) und fallen daher kaum auf.
@echo off
mode con: cols=16 lines=6
:: The file you want to launch.
set FILE=PATH_TO_FILE
:: The day you want to launch the file on.
set DAY=Sun
for /F "tokens=1 delims= " %%A in ('Date /t') do ( Set TODAY=%%A )
if %TODAY% == %DAY% goto START
:STOP
color 47
goto END
:START
color 27
start "" "%FILE%"
goto END
:END
exit
Sie müssen zwei Dinge in der Batchdatei ändern, um sicherzustellen, dass sie Ihren Anforderungen entspricht.
- Zuerst müssen Sie
PATH_TO_FILE
in Zeile 7 den Pfad der ausführbaren Datei ändern, die Sie starten möchten. - Zweitens müssen Sie möglicherweise Zeile 10 ändern.
Sun
Dies muss möglicherweise in die ersten drei Buchstaben des Tages geändert werden, an dem Sie die ausführbare Datei starten möchten (wenn Sie sie nicht am Sonntag starten möchten).