Jump to content

Empfohlene Beiträge

Guten Tag =)

 

ich versuche das erste mal eine Batch Datei zu schrieben die es mir ermöglicht regelmäßig an einem Bestimmten Tag in der Woche (Montag) ein Log Programm zu schließen und Dateien zu verschrieben. Die Tagesabfrage, das Schließen sowie das verschieben der Dateien funktioniert wunderbar nur nicht die IF Funktion. Auch wenn nicht der Montag ist wird das gewünschte Programm geschlossen und die Dateien verschoben.

Ich komme mit ausprobieren nicht mehr weiter und hoffe das Ihr mir sagen könnt, was ich falsch gemacht habe.

 

Hier sind die Befehle

@echo off

:false
echo falsch

REM Ermittlung des Tages
for /F "skip=2 tokens=2-4 delims=," %%A in ('WMIC path Win32_LocalTime Get DayOfWeek /Format:csv') do set daynumber=%%A  
echo %daynumber%


if "%daynumber%"=="1" goto true
if "%daynumber%"=="2" goto false
if "%daynumber%"=="3" goto false
if "%daynumber%"=="4" goto false
if "%daynumber%"=="5" goto false
if "%daynumber%"=="6" goto false
if "%daynumber%"=="7" goto false


:true
echo richtig
REM Programm schließen
TASKKILL /IM weather.exe /F /T

REM Verschiebt Dateien mit der endung .xlsx
move C:*.xlsx D:\hierhinverschieben

REM Programm starten
start "" "C:\Program Files (x86)\tools\weather.exe"


pause >nul

 

Ich möchte mich schonmal für eure Hilfe bedanken =)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

deine Schleife sieht auch etwas seltsam aus. "false" heißt, es soll nichts passieren, verzweigt aber zum Beginn des Skripts. Sinnvoller wäre es doch dann, das Skript zu beenden oder an eine Stelle hinter "true" zu springen.

 

Hier habe ich vor Jahren mal sowas in der Art gepostet, vielleicht hilft das weiter. Dort ist auch keine WMIC-Abfrage drin, die nicht nur viel Zeit kostet, sondern auch wegen der nötigen Berechtigungen heikel ist.

 

[Monitoring: Ping-Checks zeitabhängig | faq-o-matic.net]
https://www.faq-o-matic.net/2012/05/07/monitoring-ping-checks-zeitabhngig/

 

Ansonsten wäre die Empfehlung, derartige Dinge per PowerShell anzugehen. Batch ist doch sehr eingeschränkt, sobald etwas mehr Logik in einer Aufgabe steckt.

 

Gruß, Nils

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,

 

evtl. ein ganz einfacher Ansatz: Die "Logik" aus der Batch lassen und die Batchdatei per Taskplaner nur Montags starten. :)

Ansonsten: Definitiv PowerShell.

 

Gruß

Jan

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×