Když jsem psal o zálohování ve Windows, za pomoci nástrojů příkazové řádky, chtěl jsem výsledný archiv pojmenovat s použitím aktuálního data. Jenže jsem nevěděl, jak dostat výstup příkazu date do proměnné... A teď už to vím a proto se podělím.
Dá se k tomu použít příkaz for; mimo jiné umí parsování dat (přepínač /f), přičemž data mohou být soubor (zapsána cesta), text (zapsán v uvozovkách) a - pozor - výstup příkazu (zapsán v apostrofech). V našem případě potřebujeme aktuální čas, což je příkaz 'date /t'. Výstup je závislý na zvolených národních zvyklostech v systému, na českých windows to bude zkratka dne v týdnu + mezera + datum v českém formátu, např. "út 03.01.2006". Kýžený stav pro pojmenování zálohovaného archivu je, alespoň v mém případě, "zaloha_2006_01_03.zip", tedy nejdříve rok, pak měsíc a nakonec den, ono se to pak lépe třídí v adresáři. Takže potřebujeme výstup příkazu date rozsekat na den, měsíc a rok a jméno z těchto částí opět sestavit. Zařídí to následující kód (vypíše jméno archivu na obrazovku, do minulých skriptů to jistě vložit dokážete sami):
for /f "tokens=1-4 delims=. " %%a in ('date/t') do (
set day=%%b
set month=%%c
set year=%%d
)
echo zaloha_%year%_%month%_%day%.zip
pause
Ješte vysvětlení k for příkazu: použitý formát je for /f "nastavení" %%proměnná in('příkaz') do
, přičemž nastavení obsahuje:
Příkaz for se vykonává opakovaně pro každý řádek dat, výstup příkazu date má řádku jednu, tudíž se vše provede pouze jednou. Do vlastních proměnných vložíme příslušné elementy a na závěr z nich sestavíme požadované jméno.
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.