Använd filformat för att bearbeta filer baserade på ålder

Det är alltid bra att känna till någon kommandoradsmagi, eftersom det ibland är lättare att bearbeta kommandon på det sättet.

Den här guiden visar kommandot Forfiles i Windows Vista och Windows 7 (Uppdatering: Finns också i nyare versioner av Windows).

Forfiles kan behandla filer baserade på namn, filändelser och ålder. Det är till exempel möjligt att hitta alla dokument i en katalog som är äldre än 20 dagar, eller alla dokument i c: \ dokument som har ändrats sedan ett visst datum.

Kommandot forfiles kan kopplas till behandlingsalternativ för att ta bort dessa filer eller för att skapa en lista över alla filer som matchar filtren. Låt oss titta närmare på kommandot forfiles.

FORFILER [/ P söknamn] [/ M sökmask] [/ S] [/ C-kommando] [/ D [+ | -] dd / MM / åååå]

Beskrivning: Väljer en fil (eller uppsättning filer) och kör ett kommando på den filen. Detta är användbart för batchjobb.

Parameterlista:

  • / P söknamn Anger sökvägen att börja söka. Standardmappen är den aktuella arbetskatalogen (.).
  • / M sökmask Söker efter filer enligt en sökmasker. Standard sökmasken är '*'.
  • / S Instruerar forfiler att rekrytera till underkataloger. Som "DIR / S".
  • / C-kommando Anger kommandot som ska köras för varje fil. Kommandosträngar bör förpackas med dubbla citat. Standardkommandot är "cmd / c echo @ fil".

Följande variabler kan användas i kommandosträngen:

  • @fil - returnerar namnet på filen.
  • @fname - returnerar filnamnet utan förlängning.
  • @ext - returnerar bara filändelsen.
  • @ path - returnerar filens hela sökväg.
  • @relpath - returnerar filens relativa sökväg.
  • @isdir - returnerar "SANT" om en filtyp är en katalog och "FALSE" för filer.
  • @fsize - returnerar storleken på filen i byte.
  • @fdate - returnerar det senaste ändrade datumet för filen.
  • @ Halvtid - returnerar den senaste ändrade tiden för filen.

Om du vill inkludera specialtecken i kommandoraden använder du hexadecimal kod för tecknet i 0xHH-format (ex. 0x09 för fliken). Interna CMD.exe-kommandon bör föregås med "cmd / c".

/ D-datum Väljer filer med ett senast modifierat datum större än eller lika med (+) eller mindre än eller lika med (-), det angivna datumet med formatet "dd / MM / åååå"; eller väljer filer med ett senast modifierat datum större än eller lika med (+) det aktuella datumet plus "dd" dagar, eller mindre än eller lika med (-) det aktuella datumet minus "dd" dagar. Ett giltigt "dd" -antal dagar kan vara valfritt nummer i intervallet 0 - 32768. "+" tas som standardtecken om det inte anges.

/? Visar detta hjälpmeddelande. Den här hjälpfilen kan öppnas genom att ange kommandot forfiles /? i en kommandotolk. Tryck på Windows-R, skriv cmd och tryck på enter för att starta kommandoraden i Windows.

Kommandot forfiles /P c:\test\ /M .doc /S /D -10 söker i katalogen c: \ test och alla dess underkataloger efter filer med .doc-förlängningen som är äldre än 10 dagar.

Parametern / p följt av en katalog definierar startkatalogen, / s inkluderar underkataloger i sökningen, / m filtrerar filerna och mapparna baserat på den angivna strängen, och / D definierar datum eller tidsintervall.

Kommandot / C används för att bearbeta de filer som hittas längre. Det kan till exempel användas för att köra följande kommando: /C "cmd /c echo @fname" > test.txt eko namnen på varje hittad fil och spara resultaten i text.txt i samma katalog.

Det fullständiga kommandot ser då ut så här forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

En annan möjlighet är att radera filerna som matchar sökningen, detta görs med kommandot /C "cmd /c del @File

Det rekommenderas dock att testa utdata först innan du släpper kommandot för att se till att bara rätt filer raderas. Erfarna användare kan skapa en batchfil för att köra filerna regelbundet.