Potřeboval jsem v „DOSu“ (lépe řečeno z příkazové řádky) udělat složku, která bude obsahovat aktuální datum a čas. Řešení je jednoduché (ale na první pohled hrozivě vypadající).
mkdir %date:~-4,4%%date:~-7,2%%date:~3,2%-%time:~0,2%%time:~3,2%%time:~6,2% |
Ačkoli to vypadá děsivě, vlastně to není nic jiného, než krájení řetězce. Takže pokud vám díky jinému lokálnímu nastavení data a času vychází nesmysl, stačí si pohrát s indexy (od kterého znaku, kolik znaků se má vykrojit).
To, jak vypadá řetězec obsahující datum (a čas) zjistíme následujícími příkazy:
echo %date% echo %time% |
Jak se to krájí, jak se to počítá?
Začátek řetězce je vlevo (překvapivě 😉 ). Počítá se tedy zleva. První index je od kolikátého znaku a druhý index kolik se má vzít znaků. Takže tohle
echo %date:~0,2% |
vezme první dva znaky z datumu. Zatímco takhle
echo %date:~-4,2% |
začne na čtvrtém znaku od konce a vysekne dva znaky (tedy 4. a 3. od konce).
Pro názornost si ještě vysekneme řetězec rok_měsíc (RRRR_MM):
C:\> echo %date% pá 05.11.2010 C:\> echo %date:~-4,4%_%date:~-7,2% 2010_11 |
Tak hurá do toho!
A pokud byste potřebovali nahrazování znaků v řetězci, koukněte na příspěvek Příkazová řádka: nahrazení znaku ve stringu
1 komentář