Det er altid godt at kende nogle kommandolinje magi, som det nogle gange er lettere at behandle kommandoer på den måde.
Denne guide viser Forfiles-kommandoen i Windows Vista og Windows 7 (Update: fås Også i nyere versioner af Windows).
Forfiles kan behandle filer, baseret på navne, filtypenavne og alder. Det er for eksempel muligt at finde alle dokumenter i en mappe, der er ældre end 20 dage, eller alle dokumenter i c:documents der er blevet ændret da en specifik dato.
Den forfiles kommando kan være kombineret med behandling på valg for at slette disse filer, eller til at oprette en liste over alle filer, der matcher de filtre. Lad os tage et nærmere kig på forfiles kommando.
FORFILES [/P stinavn] [/M searchmask] [/S] [/C kommando] [/D [+ | -] {dd/MM/åååå | dd}]
Beskrivelse: Vælger en fil (eller filer) og udfører en kommando på, at filen. Dette er en hjælp for batch job.
Parameterliste:
- /P stinavn Angiver stien til at begynde at søge. Standard mappen er den aktuelle arbejdsmappe (.).
- /M searchmask Søgninger filer i henhold til en searchmask. Standard searchmask er”*”.
- /S Pålægger forfiles at recurse i undermapper. Som “DIR /S”.
- /C kommando Angiver den kommando der skal udføres for hver fil. Kommando strenge bør være indpakket i dobbelte anførselstegn. Standard kommandoen er “cmd /c echo @fil”.
Følgende variabler kan bruges i kommandoen string:
- @fil – returnerer navnet på filen.
- @fname – giver filnavnet uden forlængelse.
- @ext – kun returnerer den extension of filen.
- @sti – returnerer den fulde sti til filen.
- @relpath – returnerer den relative sti til filen.
- @isdir – returnerer “SAND”, hvis en fil type er en mappe, og “FALSK” for filer.
- @fsize – afkast af filens størrelse (i byte).
- @fdate – returnerer datoen for seneste ændring af filen.
- @ftime – returnerer sidst opdateret tid af filen.
At, der indeholder specielle tegn i kommandolinjen, skal du bruge hexadecimal kode for tegn i 0xHH format (ex. 0x09 for tab). Interne CMD.exe kommandoer bør indledes med “cmd /c”.
/D dato Vælger filer, der med en sidste dato, der er større end eller lig med ( + ) eller mindre end eller lig med (-), en bestemt dato ved hjælp af “dd/MM/åååå-format; eller vælger filer, der med en sidste 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” antallet af dage kan være et tal i intervallet 0 – 32768. “+” er taget med som standard tegn, hvis der ikke er specificeret.
/? Viser denne hjælp-meddelelse. Denne hjælp-fil kan åbnes ved at indtaste kommandoen forfiles /? i en kommando prompt. Tryk på Windows-R, skriv cmd, og tryk enter for at starte kommandolinjen i Windows.
Kommandoen forfiles /S c:test M /M .doc /S /D -10 søgninger bibliotek c:test og alle dens undermapper til filer med .doc udvidelse, der er ældre end 10 dage.
Parameteren /s efterfulgt af et bibliotek definerer starter bibliotek /s indeholder undermapper i søgningen, /m filtre de filer og mapper, der er baseret på den angivne streng, og /D definerer den dato eller en periode.
/C-kommandoen bruges til at behandle de filer, der er fundet yderligere. Det kan for eksempel bruges til at køre følgende kommando: /C “cmd /c echo @fname” > test.txt echo navnene på de enkelte filer er fundet, og gem resultaterne i text.txt i det samme bibliotek.
Den fulde kommando, så ligner dette forfiles /S c:test M /M .doc /S /D -10 /C “cmd /c echo @fname” > test.txt
En anden mulighed er at slette de filer, der opfylder søgekriterierne, dette gøres med kommandoen /C “cmd /c del @Fil
Det anbefales dog at teste outputtet, før den udsteder slet kommando til at sørge for, at kun de rigtige filer bliver slettet. Erfarne brugere kan oprette en batch-fil for at udføre forfiles regelmæssigt.