Vždy je dobré znát nějakou magii příkazového řádku, protože někdy je jednodušší zpracovat příkazy tímto způsobem.
Tato příručka demonstruje příkaz Forfiles v systému Windows Vista a Windows 7 (Aktualizace: K dispozici také v novějších verzích systému Windows).
Forfiles umí zpracovat soubory na základě jmen, přípon souborů a věku. Je například možné najít všechny dokumenty v adresáři, které jsou starší než 20 dnů, nebo všechny dokumenty v c: \ dokumenty, které byly změněny od určitého data.
Příkaz forfiles může být spojen s možnostmi zpracování k odstranění těchto souborů nebo k vytvoření seznamu všech souborů, které odpovídají filtrům. Podívejme se blíže na příkaz forfiles.
FORFILES [/ P pathname] [/ M searchmask] [/ S] [/ C command] [/ D [+ | -] dd / MM / rrrr]
Popis: Vybere soubor (nebo sadu souborů) a provede na něm příkaz. To je užitečné pro dávkové úlohy.
Seznam parametrů:
- / P pathname Označuje cestu k zahájení vyhledávání. Výchozí složka je aktuální pracovní adresář (.).
- / M searchmask Prohledává soubory podle vyhledávací masky. Výchozí vyhledávací maska je '*'.
- / S Pokynuje, aby se soubory ukládaly do podadresářů. Jako „DIR / S“.
- Příkaz / C Označuje příkaz, který se má provést pro každý soubor. Příkazové řetězce by měly být zabaleny do dvojitých uvozovek. Výchozí příkaz je "cmd / c echo @file".
V příkazovém řetězci lze použít následující proměnné:
- @file - vrací název souboru.
- @fname - vrátí název souboru bez přípony.
- @ext - vrací pouze příponu souboru.
- @ cesta - vrátí úplnou cestu k souboru.
- @relpath - vrací relativní cestu k souboru.
- @isdir - vrací "TRUE", pokud je typ souboru adresář, a "FALSE" pro soubory.
- @fsize - vrací velikost souboru v bajtech.
- @fdate - vrací poslední změněné datum souboru.
- @ftime - vrací poslední upravený čas souboru.
Chcete-li do příkazového řádku zahrnout speciální znaky, použijte hexadecimální kód pro znak ve formátu 0xHH (např. 0x09 pro kartu). Interním příkazům CMD.exe by mělo předcházet „cmd / c“.
/ D datum Vybere soubory s posledním upraveným datem větším nebo rovným (+) nebo menším nebo rovným (-), určeným datem ve formátu „dd / MM / rrrr“; nebo vybere soubory s posledním pozměněným datem větším nebo rovným (+) aktuálnímu datu plus „dd“ dní nebo menším nebo rovným (-) současnému datu mínus „dd“ dní. Platný počet dní "dd" může být libovolné číslo v rozsahu 0 - 32768. "+" je považováno za výchozí znaménko, pokud není uvedeno.
/? Zobrazí tuto zprávu nápovědy. Tento soubor nápovědy lze otevřít zadáním příkazu forfiles /? v příkazovém řádku. Stisknutím klávesy Windows-R, zadejte příkaz cmd a stiskem klávesy Enter spusťte příkazový řádek ve Windows.
Příkaz forfiles /P c:\test\ /M .doc /S /D -10
prohledává adresář c: \ test a všechny jeho podadresáře pro soubory s příponou .doc, které jsou starší než 10 dní.
Parametr / p následovaný adresářem definuje počáteční adresář, / s zahrnuje podadresáře ve vyhledávání, / m filtruje soubory a složky na základě zadaného řetězce a / D definuje datum nebo časové rozpětí.
Příkaz / C se používá ke zpracování souborů, které jsou dále nalezeny. Může být například použit ke spuštění následujícího příkazu: /C "cmd /c echo @fname" > test.txt
echo jména každého nalezeného souboru a uložení výsledků do text.txt ve stejném adresáři.
Úplný příkaz pak vypadá takto: forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt
Další možností je smazat soubory, které odpovídají vyhledávání, a to pomocí příkazu /C "cmd /c del @File
Doporučujeme však nejprve otestovat výstup před vydáním příkazu delete, abyste se ujistili, že jsou smazány pouze správné soubory. Zkušení uživatelé mohou vytvořit dávkový soubor pro pravidelné spouštění forfiles.