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-Key: 75264

Url: https://administrator.de/contentid/75264

Printed on: April 26, 2024 at 02:04 o'clock

Member: stuefer
stuefer Dec 05, 2007 at 11:33:37 (UTC)
Goto Top
warum legts du nicht einfach ein Task an ??
Member: bastla
bastla Dec 05, 2007 at 12:27:27 (UTC)
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
Member: TuXHunt3R
TuXHunt3R Dec 05, 2007 at 12:33:24 (UTC)
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.
Member: Biber
Biber Dec 05, 2007 at 12:41:21 (UTC)
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
Member: EasyEyeSystem
EasyEyeSystem Dec 05, 2007 at 15:38:17 (UTC)
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