Batch script til sletning af fil ældre end 30 dage
Shell Scripting er en kraftfuld måde at håndtere filer på Linux . Man kan skrive brugerdefinerede Shell-scripts, der kan bruges til at kopiere eller slette gamle filer. Når du har skrevet koden ud, skal du gemme den som en fil og køre den i batch-tilstand. Når koden er kørt på batch-tilstand, skal brugeren kunne flytte eller slette gamle filer efter deres behov.
- Problem
- Opløsning
- Bemærk
Problem
Jeg vil gerne lave et batch script, der kunne kopiere filer, der er ældre end 30 dage fra en mappe til en anden. Jeg vil også have det til at slette de 30 dage gamle filer fra kildemappen efter kopiering til destinationsmappen.
Opløsning
Følgende windows script vil flytte filer ældre end en given dato fra C: folder1 til C: folder2. Ved ældre antager jeg, at de ikke ændres efter en bestemt dato.
Datoen er bestået i formatet yyyymmdd. Når filer flyttes til mappe2, slettes de automatisk fra mappe1.
# Script movefiles.txt # Input argument - dato var str date # Få en liste over filer, der ikke er ændret siden $ date. var str liste; lf -n "*" "C: folder1" (($ ftype == "f") OG ($ fmtime $ list # Flyt filer en efter en. mens ($ list "") gør var str fil; lex "1" $ list> $ file system move $ file "C: folder2" færdig
Skriften er i bitskrivning. Download biterscripting fra //www.biterscripting.com.
- Gem scriptet som C: Scriptsmovefiles.txt.
- Start biterscripting.
- Kald scriptet som:
script movefiles.txt dato (dagens dato)
Ovenstående vil flytte filer, der ikke er blevet ændret siden 30 dage før i dag.
Bemærk
Tak til SenHu for dette tip på forummet.