17.11.2023, Vladimír Klaus, navštíveno 566x
U jednoho klienta došlo na jeho OneDrive místo, protože zálohy, které tam kopíruje, jsou stále větší a větší. S ohledem na to, že nepotřebuje tolik denních záloh, napadlo mě, že vždy po vytvoření nových, odstraním všechny soubory, které jsou starší než 3 dny.
Chvíli jsem situaci řešil s ChatGPT a Bardem, ale nikam to nevedlo. A už jsem začal nadávat, že tohle AI moc nezvládla... Jedním z příkazů, který jsem zkoušel byl tento.
forfiles /p "e:\temp\" /s /m *.* /d -3 /c "cmd /c del @path"
Bohužel i po různých obměnách končil touto nic neříkající chybou, stejně tak nápověda neukázala nic zajímavého.
Nakonec jsem příkaz rozchodil. Těžko uvěřitelným problémem bylo na konci cesty zpětné lomítko! Správný příkaz tedy vypadá takto:
forfiles /p "e:\temp" /s /m *.* /d -3 /c "cmd /c del @path"
Příkaz forfile je jinak velmi užitečný i pro jiné situace, než je mazání souborů. Vybere soubor (nebo sadu souborů) a provede na něm zadaný příkaz. Stručný význam parametrů (více se dozvíte v nápovědě forfiles /?):
- /p - cesta
- /s - včetně podadresářů
- /m - maska (bohužel nejde zadat více masek najednou)
- /d - počet dní, případně datum; číslo s mínusem znamená do minulosti, číslo s plusem do budoucnosti
- /c - příkaz, který se má s nalezenými soubory provést
Zdroje: