Batch der nur am Sonntag ausgeführt wird
Hallo ich beschäftige mich gerade das erste mal mit batch dateien.
Ich habe es bisher geschaft mit den Antworten aus diesem Forum und einer kleinen ftp .exe es so hinzubekommen, dass in einem Ordner alle mp3 kleiner als x gelöscht werden
und das danach die verbleibenden mp3 auf einen Server geladen werden.
Nun will ich es so hinbekommen das der upload automatisch jeden Sonntag beim runterfahren des PC passiert.
Aber eben nicht die Woche über, wenn man den Rechner runterfährt.
Ich brauche also eine Abfrage die das aktuelle Datum mit dem Soll (Sonntag) vergleicht und wenn die Werte gleich sind die weiteren Parameter ausführt und ansonsten die batch einfach beendet ohne etwas zu tun.
Ich habe mir aus einem anderen Thread diesen Codeschnippsel kopiert, komme damit aber nicht weiter.
Der Wochentag wird richtig berechnet , ich bräuchte jetzt eine "wenn dann" abfrage
steig da aber nicht mehr durch, vielleicht ist das auch viel zu kompliziert gemacht?
Schon mal lieben dank.
Ich habe es bisher geschaft mit den Antworten aus diesem Forum und einer kleinen ftp .exe es so hinzubekommen, dass in einem Ordner alle mp3 kleiner als x gelöscht werden
und das danach die verbleibenden mp3 auf einen Server geladen werden.
setlocal
for %%i in (C:\MP3Ordner\*.mp3) do if %%~zi LSS 512000 del "%%i"
fsync upload *.mp3 -u ftp://User:Passwort@ftp.domain.de/
pause
Nun will ich es so hinbekommen das der upload automatisch jeden Sonntag beim runterfahren des PC passiert.
Aber eben nicht die Woche über, wenn man den Rechner runterfährt.
Ich brauche also eine Abfrage die das aktuelle Datum mit dem Soll (Sonntag) vergleicht und wenn die Werte gleich sind die weiteren Parameter ausführt und ansonsten die batch einfach beendet ohne etwas zu tun.
Ich habe mir aus einem anderen Thread diesen Codeschnippsel kopiert, komme damit aber nicht weiter.
REM Berechnung des Wochentages
REM Hier eventuell Reihenfolge und delims anpassen
REM ##################
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
set /a "TwoDigitYearMax=2038%%1000"
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
REM Zuordnung Wochentag
REM ##################
If %dow% equ 1 set "WoTa=Montag"
If %dow% equ 2 set "WoTa=Dienstag"
If %dow% equ 3 set "WoTa=Mittwoch"
If %dow% equ 4 set "WoTa=Donnerstag"
If %dow% equ 5 set "WoTa=Freitag"
If %dow% equ 6 set "WoTa=Samstag"
If %dow% equ 7 set "WoTa=Sonntag"
REM Gibt zur Kontrolle den Wochentag aus
REM ##################
REM echo Heute ist %WoTa%
pause
Der Wochentag wird richtig berechnet , ich bräuchte jetzt eine "wenn dann" abfrage
If %dow% equ 7 do
Schon mal lieben dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173114
Url: https://administrator.de/contentid/173114
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
Du könntest die Abfrage noch vereinfachen, indem du VBScript nutzt:
@echo off
@echo wscript.echo Weekday("%date%") > dow1.vbs
for /f %%a in ('cscript /nologo dow1.vbs') do set "wt=%%a"
del dow1.vbs
@echo Heute ist der %wt%. Tag der Woche (beginnend bei 0 = Sonntag)
if %wt% gtr 0 goto :eof
Rem hier dein Code zur Ausführung.