Gebruik Forfiles om bestanden te verwerken op basis van leeftijd

Probeer Ons Instrument Voor Het Oplossen Van Problemen

Het is altijd goed om wat magie van de opdrachtregel te kennen, omdat het soms gemakkelijker is om opdrachten op die manier te verwerken.

Deze handleiding demonstreert het Forfiles commando in Windows Vista en Windows 7 (Update: ook beschikbaar in nieuwere versies van Windows).

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

Het forfiles-commando 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 het forfiles-commando eens nader bekijken.

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

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

forfiles

Parameterlijst:

  • / P padnaam Geeft het pad aan om te beginnen met zoeken. De standaardmap is de huidige werkmap (.).
  • / M zoekmasker Zoekt bestanden op basis van een zoekmasker. Het standaard zoekmasker is '*'.
  • / S instrueert forfiles om in submappen te herplaatsen. 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 commandostring:

  • @file - geeft de naam van het bestand terug.
  • @fname - retourneert de bestandsnaam zonder extensie.
  • @ext - geeft alleen de extensie van het bestand terug.
  • @path - geeft het volledige pad van het bestand terug.
  • @relpath - geeft het relatieve pad van het bestand terug.
  • @isdir - retourneert 'TRUE' als een bestandstype een directory is, en 'FALSE' voor bestanden.
  • @fsize - geeft de grootte van het bestand in bytes terug.
  • @fdate - retourneert de laatste wijzigingsdatum van het bestand.
  • @ftime - geeft de laatst gewijzigde tijd van het bestand terug.

Om speciale tekens in de opdrachtregel op te nemen, gebruikt u de hexadecimale code voor het teken in 0xHH-indeling (bijv. 0x09 voor tab). Interne CMD.exe-opdrachten moeten worden voorafgegaan door 'cmd / c'.

/ D date Selecteert bestanden met een laatste 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 laatste 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 tussen 0 - 32768 zijn. '+' Wordt als standaardteken gebruikt als het niet is opgegeven.

/? Geeft dit helpbericht weer. Dit helpbestand kan worden geopend door het commando forfiles /? in een opdrachtprompt. Druk op Windows-R, typ cmd en druk op enter om de opdrachtregel in Windows te starten.

Het bevel forfiles / P c: test / M .doc / S / D -10 zoekt in de directory c: test en al zijn submappen naar bestanden met de .doc-extensie 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.

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

Het volledige commando ziet er dan zo uit forfiles / P c: test / M .doc / S / D -10 / C 'cmd / c echo @fname'> test.txt

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

Het wordt echter aanbevolen om eerst de uitvoer te testen, voordat u de verwijderopdracht geeft, om er zeker van te zijn dat alleen de juiste bestanden worden verwijderd. Ervaren gebruikers kunnen een batchbestand maken om regelmatig bestanden uit te voeren.