CMD: Různé akce skriptu podle dne v týdnu

V určitých situacích, potřebujeme, aby se dávka chovala jinak přes týden (v produkčním čase) a jinak třeba v sobotu (mimo produkční čas).

Například dávka, kterou si backup software spouští před zálohováním: Taková dávka by mohla zastavovat určité služby, aby v průběhu zálohování nebyly klíčové datové soubory otevřené a jejich záloha tak byla konzistentní. Pokud by tohle provedla v produkčním čase, asi by měl administrátor spoustu prostoru k omlouvání výpadku služeb 😉

Drobnou komplikací je, že dost dobře není možné v obecném případě vyseknout informaci o dnu v týdnu z proměnné %date%, protože nevím, jaké je na cílové stanici jazykové nastavení a formát data.

Obejdeme to následujícím skriptem:

@echo off &setlocal enableextensions
 
set "TM_=%TEMP%\_TMP$.VBS"
 
>%TM_% echo/WScript.echo WeekDay(Date, vbMonday)
 
for /f %%? in ('cscript //nologo %TM_%') do (set "WD_=%%?" &&(del %TM_%))
 
if %WD_% == 6 (
 
	echo Dneska je sobota
 
) else (
 
	echo Dneska neni sobota
 
)
 
endlocal &GoTo :EOF

Finta spočívá v tom, že pomocí VBS funkce WeekDay vložíme pořadové číslo dne v týdnu do proměnné %WD_%.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*