Gebruik Forfiles om bestanden op basis van leeftijd te verwerken

Het is altijd goed om een ​​beetje opdrachtregelmagie te kennen, omdat het soms gemakkelijker is om opdrachten op die manier te verwerken.

Deze gids demonstreert de Forfiles-opdracht in Windows Vista en Windows 7 (update: ook beschikbaar in nieuwere versies van Windows).

Forfiles kunnen bestanden verwerken op basis van namen, bestandsextensies en leeftijd. Het is bijvoorbeeld mogelijk om alle documenten in een map te vinden die ouder zijn dan 20 dagen, of alle documenten in c: \ documenten die sinds een specifieke datum zijn gewijzigd.

De opdracht forfiles kan worden gekoppeld aan verwerkingsopties om die bestanden te verwijderen of om een ​​lijst te maken van alle bestanden die overeenkomen met de filters. Laten we de opdracht forfiles eens nader bekijken.

FORFILES [/ P padnaam] [/ M zoekmasker] [/ S] [/ C commando] [/ D [+ | -] dd / MM / jjjj]

Beschrijving: selecteert een bestand (of een set bestanden) en voert een opdracht uit voor dat bestand. Dit is handig voor batchtaken.

Parameter Lijst:

  • / P padnaam Geeft het pad aan om te beginnen met zoeken. De standaardmap is de huidige werkmap (.).
  • / M zoekmasker Zoekt bestanden volgens een zoekmasker. Het standaardzoekmasker is '*'.
  • / S Instrueert forfiles om te herverdelen in submappen. Zoals "DIR / S".
  • / C-opdracht Geeft de opdracht aan die voor elk bestand moet worden uitgevoerd. Opdrachtreeksen moeten tussen dubbele aanhalingstekens worden geplaatst. De standaardopdracht is "cmd / c echo @file".

De volgende variabelen kunnen worden gebruikt in de opdrachtreeks:

  • @bestand - geeft de naam van het bestand terug.
  • @fname - retourneert de bestandsnaam zonder extensie.
  • @ext - geeft alleen de extensie van het bestand terug.
  • @path - retourneert het volledige pad van het bestand.
  • @relpath - retourneert het relatieve pad van het bestand.
  • @isdir - retourneert "WAAR" als een bestandstype een map is en "ONWAAR" voor bestanden.
  • @fsize - retourneert de grootte van het bestand in bytes.
  • @fdate - retourneert de laatste gewijzigde datum van het bestand.
  • @ftime - retourneert de laatste gewijzigde tijd van het bestand.

Als u speciale tekens op de opdrachtregel wilt opnemen, gebruikt u de hexadecimale code voor het teken in het formaat 0xHH (bijvoorbeeld 0x09 voor het tabblad). Interne CMD.exe-opdrachten moeten worden voorafgegaan door "cmd / c".

/ D datum Selecteert bestanden met een laatst gewijzigde datum groter dan of gelijk aan (+), of kleiner dan of gelijk aan (-), de gespecificeerde datum met behulp van het "dd / MM / jjjj" formaat; of selecteert bestanden met een laatst gewijzigde datum groter dan of gelijk aan (+) de huidige datum plus "dd" dagen, of kleiner dan of gelijk aan (-) de huidige datum minus "dd" dagen. Een geldig "dd" aantal dagen kan elk getal in het bereik van 0 - 32768 zijn. "+" Wordt als standaardteken genomen als dit niet is opgegeven.

/? Toont dit helpbericht. Dit helpbestand kan worden geopend door de opdracht forfiles /? In te voeren. in een opdrachtprompt. Druk op Windows-R, typ cmd en druk op enter om de opdrachtregel in Windows te starten.

De opdracht forfiles /P c:\test\ /M .doc /S /D -10 doorzoekt de map c: \ test en al zijn submappen op bestanden met de extensie .doc die ouder zijn dan 10 dagen.

De parameter / p gevolgd door een map definieert de startmap, / s bevat submappen in de zoekopdracht, / m filtert de bestanden en mappen op basis van de ingevoerde tekenreeks en / D definieert de datum of een tijdspanne.

De opdracht / C wordt gebruikt om de bestanden te verwerken die verder worden gevonden. Het kan bijvoorbeeld worden gebruikt om de volgende opdracht uit te voeren: /C "cmd /c echo @fname" > test.txt echo de namen van elk gevonden bestand en sla de resultaten op in text.txt in dezelfde map.

De volledige opdracht ziet er dan als volgt uit: forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

Een andere mogelijkheid is om de bestanden te verwijderen die overeenkomen met de zoekopdracht, dit wordt gedaan met het commando /C "cmd /c del @File

Het wordt echter aanbevolen om eerst de uitvoer te testen, voordat u de opdracht delete uitvoert om ervoor te zorgen dat alleen de juiste bestanden worden verwijderd. Ervaren gebruikers kunnen een batchbestand maken om forfiles regelmatig uit te voeren.