bve
Goto Top

Batch nur an bestimmten Tagen ausführen

Über eine Gruppenrichtlinie lasse ich beim Herrunterfahren des System eine Batch Datei ausführen, die eine Inventur des Rechners ausführt. Die Inventur soll aber nicht jeden Tag sondern z.B. nur am Montag ausgeführt werden. Wie kann ich das machen.

Content-ID: 16606

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Biber
Biber 23.09.2005 um 17:06:56 Uhr
Goto Top
Moin bve,
wenn Du es in der Gruppenlinie nicht formulieren kannst, dann lass doch weiterhin jeden Tag diesen Inventur-Starter-Batch aufrufen und prüfe dort (im Batch) den Wochentag.
Bei Wochentag Dienstag bis Sonntag beendest du vorzeitig.

Oder hab ich Dein Problem falsch verstanden?

Biber
bve
bve 26.09.2005 um 08:56:18 Uhr
Goto Top
Das Problem hast du richtig verstanden, aber wie (mit welchem Befehl) kann ich den Wochentag überprüfen?
Biber
Biber 26.09.2005 um 22:06:05 Uhr
Goto Top
Moin, bve.

Im günstigsten Fall mit
::---snipp MachMirInventur.bat
@echo off & setlocal
for /f "tokens=1 delims=," %%i in ("%date%") do set Wochentach=%%i  
If [%Wochentach%]==[Fr] goto ZaehlMirDieErbsen
If [%Wochentach%]==[Freitag] goto ZaehlMirDieErbsen
exit 1

:ZaehlMirDieErbsen
Start GUI_Erbsenzähl.exe
::---snipp MachMirInventur.bat

Ich poste morgen mal ausführlich.
Biber
bve
bve 27.09.2005 um 09:39:59 Uhr
Goto Top
Moin Moin,
sieht schonmal nicht schlecht aus. Kleine Änderungen, sonst läuft es nicht:

If [%Wochentach%==Di] goto ZaehlMirDieErbsen
If [%Wochentach%==Dienstag] goto ZaehlMirDieErbsen


Allerdings enthält die Variable %date% das Datumsformat TT.MM.JJJJ. Also kann ich nicht die Zeichenfolge DI oder Dienstag auslesen. Ich könnte jetzt dabei gehen und in den Ländereinstellungen das Format ändern (auf TTTT, TT.MM.JJJJ), allerdings würden dann auch alle Standardschreiben, die wir erzeugen, mit einem falschen Datumsformat raus gehen.
bve
bve 27.09.2005 um 10:15:57 Uhr
Goto Top
Da hat Billy Boy mal wieder ganze Arbeit geleistet ;-(

In Windows 2000 wird die Variable Date mit z.B. Di 27.09.2005 gefüllt. In Windows XP oder 2003 nur noch mit 27.09.2005.

Vielleicht ne Idee wie man das trotzdem hinbekommt.
Biber
Biber 27.09.2005 um 11:38:33 Uhr
Goto Top
Jepp, bve,
genau das hatte ich gestern schon alles in einem Langtext geschrieben und eine Umgehungsstrategie zusammengetippt.
Und dann hatte ich einen Timeout *fluch*

Deshalb gestern dieser Kurztext oben.

Ich melde mich heute abend (grade Produktiv-Problem).

Biber
Biber
Biber 27.09.2005 um 22:10:05 Uhr
Goto Top
Mist,bve,
wieder so spät geworden, dass ich gar keine Lust mehr habe noch weit auszuholen.

Also kurz die Strategie: mit Regedit oder Reg.exe den Alten Schlüssel sichern (falls vorhanden)
reg query "HKCU\Control Panel\International" /v sShortDate

Danach mit Reg Add ein Format mit Wochentag setzen, Die zweieinhalb Zeile oben machen.

Hinterher wieder alles restaurieren

Skizze:
-------snipp--- MachMirInventurII.bat
echo off & setlocal
Set DateRegCheck='reg query ^"HKCU\Control Panel\International^" /v sShortDate^^^|find ^"sShortDate^"'  
Set OldDateFormat=
Set NewDateFormat="ddd, dd.MM.yyyy"  
reg query "HKCU\Control Panel\International" /v sShortDate  
For /f "tokens=3* delims=	 " %%! in (%DateRegCheck%) do (Set "OldDateFormat=%%!") & @echo OlddateFormat:[%%!]  
:: das @Echo in der Vorzeile nur zum Debuggen..sonst weg damit
:: alte Einstellung (falls vorhanden) ist gesichert in OldDateFormat; ansonsten ist OldDateFormat leer.
:: neues Format setzen (mit Wochentag
reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d %NewDateFormat% /f  
For /f "tokens=3* delims=	 " %%a in (%DateRegCheck%) do @echo NewdateFormat:[%%a %%b]  

for /f "tokens=1 delims=," %%i in ('date /t') do set Wochentach=%%i   
If [%Wochentach%]==[Di] call :ZaehlMirDieErbsen 
If [%Wochentach%]==[Dienstag] call :ZaehlMirDieErbsen 
goto :eof
if [%OlddateFormat%]== (
     reg delete "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d %NewDateFormat%  
) ELSE (     
reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d %OldDateFormat% /f  
)

goto :eof 

:ZaehlMirDirErbsen
echo Heut ist Dienstag!
::..................Inventur
:: Start GUI_CountThePeas.exe
goto :eof
::-------snapp MachMirInventurII.bat 

HTH Biber

P.S. Und mecker nicht wieder so über die kleinen Fehler face-wink
P.P.S. Ist eine Skizze, kein getestetes Programm zum produktiven Einsatz
77880
77880 22.04.2009 um 09:16:45 Uhr
Goto Top
Hallo,

ich weiß, dass dieser Thread schon sehr alt ist, aber ich habe diesbezüglich noch eine Frage.

Ich habe leider keine Ahnung vom Skripten, soll aber für meinen Chef eines schreiben.
Beim Starten des Skriptes soll der aktuelle Tag überprüft werden.
Ist es Montag, soll ein vollständiges Skript geschrieben werden.
An den anderen Tagen nur ein incrementelles

Ich habe schon einen Entwurf bekommen, der aber nicht funktioniert. Hier ist er:

@echo off
@rem Written by TW (March 2009)

FOR /F "TOKENS=1 DELIMS= " %%A IN ('DATE/T') DO SET DAY=%%A

IF "%DAY%"=="Mon" GOTO FULL
IF "%DAY%"=="Tue" GOTO INCN
IF "%DAY%"=="Wed" GOTO INCN
IF "%DAy%"=="Thu" GOTO INCN
IF "%Day%"=="Fri" GOTO INCN
GOTO EXIT

:FULL
ntbackup backup C: D: /M normal /J "Daily" /L:s /F "F:\%DAY% Full backup.bkf"
GOTO EXIT

:INCN
ntbackup backup systemstate C: D: /M incremental /J "Daily" /L:s /F "F:\%DAY% Incremental backup.bkf"
GOTO EXIT

:EXIT

Ich hoffe ihr könnt mir helfen und das Problem lösen.

Danke.

Gruß,
Iwantu
Biber
Biber 22.04.2009, aktualisiert am 18.10.2012 um 18:38:02 Uhr
Goto Top
Moin iwantu,

willkommen im Forum.

Ich weiss ja nicht, von wem Du Deinen Entwurf bekommen hast, aber bitte doch den- oder diejenige um Anpassung des Schnipsels mit einer der Möglichkeiten, die hier im Forum durchdekliniert worden sind:

  • Ermittlung des Wochentags aus einem Wochentags-String der (ggf. angepassten) "date/t"-Ausgabe des Betriebssystems (s.o.)
  • Ermittlung des Wochentags aus einem Wochentags-String der Ausgabe des Now.exe-Utilitys (M$-ResKit)
>now

Wed Apr 22 09:57:42 2009
  • Ermittlung des Wochentags aus einem Wochentags-String der Ausgabe der RoboCopy-Hilfe (M$-ResKit)
>robocopy /?

----------------------------------------------------------------------
ROBOCOPY v 1.96  :  Robust File Copy for Windows NT
----------------------------------------------------------------------

  Started : Wed Apr 22 10:01:23 2009
...
  • Ermittlung des Wochentages über anderthalb Zeilen VB/JSScript
--> Beispiel findest Du mit Forumssuche nach "getWochentach" hier

P.S.
Ich habe leider keine Ahnung vom Skripten, soll aber für meinen Chef eines schreiben.
Was spricht denn dann dagegen, sich mit der Thematik auseinanderzusetzen, wenn es sogar bezahlt wird?

Grüße
Biber
bve
bve 22.04.2009 um 10:23:34 Uhr
Goto Top
Guckst Du hier: Wochentag per Batch ermitteln

Sollte damit klappen...denke ich face-wink
77880
77880 22.04.2009 um 11:26:24 Uhr
Goto Top
Ich danke euch schon mal für die Antworten.
Werde eure Vorschläge mal gleich testen.