gelöst 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.
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
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.
01.
REM Berechnung des Wochentages
02.
REM Hier eventuell Reihenfolge und delims anpassen
03.
REM ##################
04.
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
05.
set /a "TwoDigitYearMax=2038%%1000"
06.
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
07.
set /a dd=100%dd%%%100,mm=100%mm%%%100
08.
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
09.
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
10.
REM Zuordnung Wochentag
11.
REM ##################
12.
If %dow% equ 1 set "WoTa=Montag"
13.
If %dow% equ 2 set "WoTa=Dienstag"
14.
If %dow% equ 3 set "WoTa=Mittwoch"
15.
If %dow% equ 4 set "WoTa=Donnerstag"
16.
If %dow% equ 5 set "WoTa=Freitag"
17.
If %dow% equ 6 set "WoTa=Samstag"
18.
If %dow% equ 7 set "WoTa=Sonntag"
19.
REM Gibt zur Kontrolle den Wochentag aus
20.
REM ##################
21.
REM echo Heute ist %WoTa%
22.
pause
Der Wochentag wird richtig berechnet , ich bräuchte jetzt eine "wenn dann" abfrage
01.
If %dow% equ 7 do
Schon mal lieben dank.
3 Antworten
- LÖSUNG bastla schreibt am 14.09.2011 um 16:55:49 Uhr
- LÖSUNG 99045 schreibt am 14.09.2011 um 17:27:02 Uhr
- LÖSUNG marsu2 schreibt am 15.09.2011 um 23:37:35 Uhr
LÖSUNG 14.09.2011 um 16:55 Uhr
Hallo marsu2 und willkommen im Forum!
Es sollte doch genügen, alles ab Zeile 10 durch
zu ersetzen ...
Grüße
bastla
Es sollte doch genügen, alles ab Zeile 10 durch
01.
if %dow% neq 7 goto :eof
02.
REM Hurra, es ist Sonntag!
03.
for %%i in (C:\MP3Ordner\*.mp3) do if %%~zi LSS 512000 del "%%i"
04.
fsync upload *.mp3 -u ftp://User:Passwort@ftp.domain.de/
05.
pause
Grüße
bastla
LÖSUNG 14.09.2011 um 17:27 Uhr
Du könntest die Abfrage noch vereinfachen, indem du VBScript nutzt:
01.
@echo off
02.
@echo wscript.echo Weekday("%date%") > dow1.vbs
03.
for /f %%a in ('cscript /nologo dow1.vbs') do set "wt=%%a"
04.
del dow1.vbs
05.
@echo Heute ist der %wt%. Tag der Woche (beginnend bei 0 = Sonntag)
06.
if %wt% gtr 0 goto :eof
07.
08.
Rem hier dein Code zur Ausführung.
LÖSUNG 15.09.2011 um 23:37 Uhr
ach geil ein herzliches Dankeschön schon mal, ich wollte wirklich nur eine batch Datei nutzen deswegen habe ich blastas genommen.
Das man den Rattenschawanz mit der Deklaration der Variablen nicht brauchen würde war mir schon klar, mir fehlte bloß das und das
Habe ich mir jetzt angelesen.
Danke
Das man den Rattenschawanz mit der Deklaration der Variablen nicht brauchen würde war mir schon klar, mir fehlte bloß das
01.
neq
01.
:eof
Danke
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte