Jump to content
Sauerkraut

Batch Script - IF Funktion mit Wochentag Abfrage

Recommended Posts

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 =)

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Werbepartner:



×
×
  • Create New...