Brug filformater til at behandle filer baseret på alder

Det er altid godt at kende nogle kommandolinjemagier, da det undertiden er lettere at behandle kommandoer på den måde.

Denne vejledning viser kommandoen Forfiles i Windows Vista og Windows 7 (Opdatering: Også tilgængelig i nyere versioner af Windows).

Forfiles kan behandle filer baseret på navn, filtypenavn og alder. Det er f.eks. Muligt at finde alle dokumenter i et bibliotek, der er ældre end 20 dage, eller alle dokumenter i c: \ dokumenter, der er ændret siden en bestemt dato.

Kommandoen forfiles kan kombineres med behandlingsindstillinger for at slette disse filer eller for at oprette en liste over alle filer, der matcher filtre. Lad os se nærmere på forfiles kommando.

FORFILER [/ P stienavn] [/ M søgemask] [/ S] [/ C kommando] [/ D [+ | -] dd / MM / åååå]

Beskrivelse: Vælger en fil (eller sæt filer) og udfører en kommando på den fil. Dette er nyttigt til batchjob.

Parameterliste:

  • / P stienavn Angiver stien, der skal begynde at søge. Standardmappen er det aktuelle arbejdsmappe (.).
  • / M søgemask Søger filer i henhold til en søgemask. Standard søgemaskine er '*'.
  • / S instruerer arkiver, der skal recirkuleres i undermapper. Ligesom "DIR / S".
  • / C-kommando Angiver den kommando, der skal udføres for hver fil. Kommandostrenge skal indpakkes i dobbelt citater. Standardkommandoen er "cmd / c echo @ fil".

Følgende variabler kan bruges i kommandostrengen:

  • @ fil - returnerer navnet på filen.
  • @fname - returnerer filnavnet uden udvidelse.
  • @ext - returnerer kun filtypenavnet.
  • @path - returnerer filens fulde sti.
  • @relpath - returnerer filens relative sti.
  • @isdir - returnerer "Sande", hvis en filtype er et bibliotek, og "FALSE" for filer.
  • @fsize - returnerer størrelsen på filen i bytes.
  • @fdate - returnerer den sidst ændrede dato for filen.
  • @ Tid - returnerer den sidst ændrede tid for filen.

Hvis du vil inkludere specialtegn i kommandolinjen, skal du bruge den hexadecimale kode for tegnet i 0xHH-format (f.eks. 0x09 til fanen). Interne CMD.exe-kommandoer skal foregå med "cmd / c".

/ D-dato Vælger filer med en sidst ændret dato større end eller lig med (+) eller mindre end eller lig med (-), den specificerede dato ved hjælp af formatet "dd / MM / åååå"; eller vælger filer med en sidst ændret dato, der er større end eller lig med (+) den aktuelle dato plus "dd" dage, eller mindre end eller lig med (-) den aktuelle dato minus "dd" dage. Et gyldigt "dd" antal dage kan være et hvilket som helst tal i området 0 - 32768. "+" tages som standardtegn, hvis det ikke er angivet.

/? Viser denne hjælpemeddelelse. Denne hjælpefil kan åbnes ved at indtaste kommandofilen /? i en kommandoprompt. Tryk på Windows-R, skriv cmd, og tryk på enter for at starte kommandolinjen i Windows.

Kommandoen forfiles /P c:\test\ /M .doc /S /D -10 søger i mappen c: \ test og alle dens undermapper efter filer med .doc-udvidelsen, der er ældre end 10 dage.

Parameteren / p efterfulgt af et bibliotek definerer startmappen, / s inkluderer undermapper i søgningen, / m filtrerer filerne og mapperne baseret på den indtastede streng, og / D definerer dato eller tidsinterval.

Kommandoen / C bruges til at behandle de filer, der findes yderligere. Det kan f.eks. Bruges til at køre følgende kommando: /C "cmd /c echo @fname" > test.txt gentager navnene på hver fundet fil og gemmer resultaterne i text.txt i samme bibliotek.

Den fulde kommando ser så ud som denne forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

En anden mulighed er at slette de filer, der matcher søgningen, dette gøres med kommandoen /C "cmd /c del @File

Det anbefales dog at teste output først, inden du udsteder sletkommandoen for at sikre dig, at kun de rigtige filer slettes. Erfarne brugere kan oprette en batchfil til regelmæssigt at udføre arkiver.