» Poradna » Programy

Dávkový příkaz pro roztřídění souborů

 |   |  Microsoft Windows 10 Firefox 95.0

Dobrý den,mám složce velmi mnoho souborů typuMUCH_20201231_1130_CZ.docxMUCH_20211231_1131_CZ.pdf,které bych chtěla roztřídit do složek 2020, 2021 apod.Zatím jsem ve stadiu, kdy se mi to roztřídí do složek 20211231 atd.:FOR /f "tokens=1,2,3,4 delims=_" %%a IN ( 'dir /b /a-d "MUCH_*_*_CZ.*"' ) DO ( MD %%b 2>nul MOVE "%%a_%%b_%%c_%%d" .\%%b\ >nul)Teď bych tedy ještě potřebovala získat z data jen ten rok.Nějaký tip, prosím?Děkuji a hezký pátek

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 10 Chrome 96.0.4664.137

V proměnné %%b máš údaj o datu. Musíš tento údaj uložit do pomocné proměnné, např. p:set p=%%bpotom z této proměnné vybereš první čtyři znaky:set p=!p:~0,4!Všimni si, že uvnitř příkazu for je nutno používat vykřičník místo znaku procenta, jinak by se nepoužila okamžitá hodnota proměnné, ale ta, se kterou proměnná vstoupila do příkazu for. Také je potřebné předtím povolit rozšíření příkazů příkazemsetlocal EnableExtensions EnableDelayedExpansion

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 96.0

Skvělé, funguje, moc děkuji.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 97.0.4692.99

Jiná možnost:@For /F "tokens=1,2,3 delims=.,/ " %%A in ('echo %date%') do @(Set rok=%%C)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 96.0.4664.175

Ne, to není možnost, to je nesmysl. Kolegyně nepotřebuje získat právě platný rok, ale potřebuje analyzovat názvy souborů obsahující rok jejich vzniku.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 96.0

Pokud je to jednorázově, tak bych to prostě přesunul podle masky (MUCH_2020*) do odpovídajících adresářů a skript ani nepsal. Pokud se to odněkud importuje a musí se to dělat opakovaně, tak tím skriptem.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Move