easyeyesystem
Goto Top

Jeden So von einer Batch eine Batch aufrufen

Ich müsste jeden Sonntag eine Batchdatei durch ein Logonscript ausführen.
Jedoch sollte die auszuführende Datei nicht jeden Tag ausgeführt werden. Und somit müsst dies in meinem Logonscript eingebaut werden das es nur jeden So oder evtl. auch Mo ausgeführt wird.

Gibt es hierführ eine Lösung?

Noch mal anhand einem Beispiel:
Mo - Logonscript
Di - Logonscript
Mi - Logonscript
Do - Logonscript
Fr - Logonscript
Sa - Logonscript
So - Logonscript das führt noch so.bat aus

Content-ID: 75264

Url: https://administrator.de/forum/jeden-so-von-einer-batch-eine-batch-aufrufen-75264.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

stuefer
stuefer 05.12.2007 um 12:33:37 Uhr
Goto Top
warum legts du nicht einfach ein Task an ??
bastla
bastla 05.12.2007 um 13:27:27 Uhr
Goto Top
Hallo EasyEyeSystem!

Soferne es keine Einwände gegen den Einsatz von (temporärem) VBS gibt, könntest Du das im Batch so machen:
set WT=
echo On Error Resume Next:WScript.Echo Weekday(WScript.Arguments(0))>%Temp%\WT.vbs
for /f %%i in ('cscript //nologo %Temp%\WT.vbs %date%') do set WT=%%i  
if defined WT if %WT%==1 call \\Server\Share\so.bat
In %WT% wird (sofern kein Fehler aufgetreten und daher %WT% nicht gesetzt ist) der Wochentag als Zahlenwert (So=1, Sa=7) zurückgeliefert.

Grüße
bastla
TuXHunt3R
TuXHunt3R 05.12.2007 um 13:33:24 Uhr
Goto Top
Es gibt ein entsprechendes Kommandozeilentool namens Weekday.exe. Dieses könntest du im Netlogon-Share des Domänencontrollers ablegen. Es zeigt den jeweils aktuellen Wochentag an, welcher auch mit den Errorleveln 1-7 ausgelesen werden kann.

Oder wenn du unter Windows 2000 arbeitest (unter Vista, XP, 2003 geht das hier nicht):
echo %date% | find /i "so" >nul  
if "%errorlevel%"=="0" (  
call so.bat
)

Call sorgt dafür, dass so.bat ausgeführt wird und das System nachher mit dem Logonscript weitermacht.
Biber
Biber 05.12.2007 um 13:41:21 Uhr
Goto Top
und wenn es XP ist und VBS nicht erlaubt, dann lässt sich z.B eine Zeile von RoboCopy.exe oder Now.exe verwerten:
..
now |find "200"|find "Sun" >nul  
::--- ODER   Robocopy...
:: Robocopy /? |find "200"|find "Sun" >nul  
IF not errorlevel 1  @echo Is' wohl Sonntach heute...  

Grüße
Biber
EasyEyeSystem
EasyEyeSystem 05.12.2007 um 16:38:17 Uhr
Goto Top
Hallo EasyEyeSystem!

Soferne es keine Einwände gegen den
Einsatz von (temporärem) VBS gibt,
könntest Du das im Batch so machen:
set WT=
> echo On Error Resume Next:WScript.Echo
> Weekday(WScript.Arguments(0))>%Temp%\WT.vbs
> for /f %%i in ('cscript //nologo  
> %Temp%\WT.vbs %date%') do set WT=%%i  
> if defined WT if %WT%==1 call
> \\Server\Share\so.bat
> 
In %WT% wird (sofern kein
Fehler aufgetreten und daher %WT% nicht
gesetzt ist) der Wochentag als Zahlenwert
(So=1, Sa=7) zurückgeliefert.

Grüße
bastla

Danke dein Code funktioniert

@stuefer
hab ich mir scho überlegt, aber dann müsst ich für jeden Computer und dann auf jeden einzelenen für jeden Benutzer einen Task anlegen.
Dazu hab ich die Zeit einfach ned. Von Änderungen ganz zu schweigen.

@TuXHunt3R
deine Möglichkeit schau ich mir no an