» »

Batch skripta za brisanje map, starejših od X dni

Batch skripta za brisanje map, starejših od X dni

aljaz33 ::

Pozdravljeni,

Ker na internetu ne najdem nobene skripte, ki bi mi pobrisala mape in datoteke, ki jih te mape vsebujejo, se obračam na vas. Rad bi napisal BAT datoteko, ki bi mi pobrisala mape in datoteke, ki so v teh mapah, v določenem direktoriju, starejše od npr. 4 dni.

Na internetu sem našel ukaz forfiles, kateri pa mi pobriše le datoteke, mape pa ostanejo. Ker imam v direktoriju le mape, ki vsebujejo datoteke, potrebujem ukaz, ki mi bo pobrisal mape, skupaj z njihovo vsebino.

Hvala za vašo pomoč! :)
  • spremenil: aljaz33 ()

krneki0001 ::

Ukaz je RD - remove directory
Samo
RD c:\temp\
ti bo pobrisalo mapo, če bo prazna
Recimo tole ti pobriše mapo, vse podmape in vse datoteke v njih.
RD <strong>/S</strong> c:\temp\


lahko tudi našteješ mape eno za drugo, pa bo vse pobrisalo:
RD /S C:\temp\ C:\dos\ "C:\Program Files"

SeMiNeSanja ::

Si poskusil poimenovati mape z *. ?

torej

forfiles /M *. /C ".............." /D ........

krneki0001 ::

Lahko pa uporabiš PowerShell in z Remove-Item pobrišeš tisto kar hočeš.

Function Brisi_Starejse_Od_X_Dni()
{
# prebereš današnji datum
$Now = Get-Date
# definiraš število dni za nazaj - konkretno briše vse kar je starejše od 10 dni
$Days = "10"
# našteješ target folderje
$TargetFolder = @(C:\temp\,C:\DOS\,"c:\Program FIles")
# našteješ extenzije datotek, ki bi jih rad brisal
$Extension = @("*.zip","*.txt")
# izračunaš datum do katerega boš brisal datoteke
$LastWrite = $Now.AddDays(-$Days)
# nabereš datoteke, ki jih boš brisal
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
# for stavek za brisanje datotek
foreach ($File in $Files) 
    {
    if ($File -ne $NULL)
        {
            Remove-Item $File.FullName
        }
    }
}

Zgodovina sprememb…

Xpie ::

Lahko bi pa uporabu tud kkšno takšno skripto v pythonu.
import os, time, sys
def pobrisi(path, i):
    
    path = r"C:\Users\Uporabnik\Desktop\test"
    zdaj = time.time()
    for f in os.listdir(path):
        f = os.path.join(path, f)
        if os.stat(f).st_mtime < zdaj - i * 86400:
             if os.path.isfile(f):
                 os.remove(f)
    return print("Pobrisano")        
spletne-novice.si

Zgodovina sprememb…

  • spremenil: Xpie ()

krneki0001 ::

Samo za python mora imet še kaj dodatno inštalirano. batch (cmd in bat) ali powershell sta pa že po default v windows okolju.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Powershell primerjaj in kopiraj

Oddelek: Programiranje
61055 (692) Blisk
»

program za pomoč pri tiskanju 200+pdf dokumentov

Oddelek: Pomoč in nasveti
252287 (1339) HotBurek
»

SMB povezava Winows 10 s Synology NAS

Oddelek: Operacijski sistemi
323318 (2584) dukedl
»

Pretvorba skripte iz Powershell v Bash

Oddelek: Operacijski sistemi
71396 (1202) c3p0
»

batch fajl iz txt (strani: 1 2 )

Oddelek: Programiranje
659692 (8353) b3D_950

Več podobnih tem