Avaleht
uus teema   vasta Hinnavaatlus »  Üldfoorum »  Script või bat, mis kustutaks vanemad kaustad ja sisu, kui... märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
-vodafone-
HV Guru
-vodafone-

liitunud: 26.04.2005



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 13:03:53 Script või bat, mis kustutaks vanemad kaustad ja sisu, kui... vasta tsitaadiga

Tere,

Ei hakanud pealkirja liiga pikaks vedama ja jätsin ka uudishimulikele vastajatele veidi põnevust.

Nimelt oleks vaja bat faili või skripti, mis teostaks järgmise töö:
Script või bat, mis kustutaks vanemad kaustad ja sisu, kui kaustamaht ületab teatud piiri.

Igapäevaselt kontrollib see bat kausta sisu ja kui see on alla 1Gb näiteks , siis tegevust ei rakendata. Kui aga järgmisel päeval on kausta sisu suurem kui 1Gb rakendatakse vanemate failide kui 3 päeva kustutamine.
Kustutamiseks on hetkel lihtne käsk:
forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"

Aga kas saab selle nö. "if" käskluse ka siia juurde modida?
Kommentaarid: 244 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 216
tagasi üles
vaata kasutaja infot saada privaatsõnum
RassK
HV Guru
RassK

liitunud: 17.01.2007



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 17:03:52 vasta tsitaadiga

Kui kasutad Windows 7 (+) on mõttekam ehk powershell script teha.
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 101
tagasi üles
vaata kasutaja infot saada privaatsõnum
-vodafone-
HV Guru
-vodafone-

liitunud: 26.04.2005



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 18:21:40 vasta tsitaadiga

RassK kirjutas:
Kui kasutad Windows 7 (+) on mõttekam ehk powershell script teha.

Pole paha mõte.

Kasutan siis PS puhul sellist skripti :
   #----- define parameters -----#
   #----- get current date ----#
   $Now = Get-Date
   #----- define amount of days ----#
   $Days = "3"
   #----- define folder where files are located ----#
   $TargetFolder = "C:\eSupport\Manual"
   #----- define extension ----#
   $Extension = "*.*"
   #----- define LastWriteTime parameter based on $Days ---#
   $LastWrite = $Now.AddDays(-$Days)
   
   #----- get files based on lastwrite filter and specified folder ---#
   $Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
   
   foreach ($File in $Files)
       {
       if ($File -ne $NULL)
           {
           write-host "Deleting File $File" -ForegroundColor "Black"
           Remove-Item $File.FullName | out-null
           }
       else
           {
           Write-Host "No more files to delete!" -foregroundcolor "Green"
           }
       }


Aga pole leidnud ja ise ei oska siia vahele kirjutada seda tingimust, et käivitaks kustutamise osa sellisel juhul kui kausta suurus on üle 1gb
Kommentaarid: 244 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 216
tagasi üles
vaata kasutaja infot saada privaatsõnum
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 18:31:12 vasta tsitaadiga

Kataloogi suuruse saaksid näiteks sedasi kätte:
$katalooma_sisu = (Get-ChildItem C:\Users -recurse | Measure-Object -property length -sum)
Write-Host ($katalooma_sisu.sum / 1GB)

Nüüd jääks ainult vajaliku 'if' tingimuse lisamine
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
-vodafone-
HV Guru
-vodafone-

liitunud: 26.04.2005



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 22:35:25 vasta tsitaadiga

warwas kirjutas:
Kataloogi suuruse saaksid näiteks sedasi kätte:
$katalooma_sisu = (Get-ChildItem C:\Users -recurse | Measure-Object -property length -sum)
Write-Host ($katalooma_sisu.sum / 1GB)

Nüüd jääks ainult vajaliku 'if' tingimuse lisamine

Ehk minujaoks see keeruliseim osa. Üritasin tuletada teistestskriptidest aga ei hakanud toimima. Mingit näidet või suunitlust pole kellelgi pakkuda?
Kommentaarid: 244 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 216
tagasi üles
vaata kasutaja infot saada privaatsõnum
LiivaneLord
Sõpradele "Olavi"

liitunud: 20.06.2006




sõnum 12.04.2013 22:44:15 vasta tsitaadiga

-vodafone-, ma ei tea sellest programmimisest halligi, aga äkki midagi sellist:

if(($katalooma_sisu.sum / 1GB)>1){
dosomething
}
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 12.04.2013 23:10:55 vasta tsitaadiga

Eeldusel, et ma sinu ülesandepüstitusest õigest korrektselt aru sain (esimene tingimus on kataloogi suurus üle 1GB ja kui see on tõene, siis minnakse kolmest päevast vanema kraami kallale), siis üks võimalus oleks näiteks selline:

Diskleimer: ma ei ole järgnevat koodi testinud, võib sisaldada mingeid 'puuke'
#----- get current date ----#
$Now = Get-Date

#----- define amount of days ----#
$Days = "3"

#----- define folder where files are located ----#
$TargetFolder = "C:\eSupport\Manual"

#----- define extension ----#
$Extension = "*.*"

#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)

#----- get specified folder size ---#
$FolderSize = (Get-ChildItem -Path $TargetFolder -Recurse | Measure-Object -Property length -sum)

#----- if folder is bigger that 1GB, then do something ---#
if (($FolderSize.sum / 1GB) -gt 1)
{
   #----- get files based on lastwrite filter and specified folder ---#
   $Files = Get-Childitem -Path $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
   
   foreach ($File in $Files)
   {
      if ($File -ne $null)
      {
         Write-Host "Deleting File $File" -ForegroundColor "Black"
         Remove-Item $File.FullName | Out-Null
      }
      else
      {
         Write-Host "No more files to delete!" -ForegroundColor "Green"
      }
   }
}
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
-vodafone-
HV Guru
-vodafone-

liitunud: 26.04.2005



Autoriseeritud ID-kaardiga

sõnum 13.04.2013 00:51:05 vasta tsitaadiga

Tänud warwas thumbs_up.gif
Proovisin ka ise midagi sarnast meisterdada, aga ma ei taibanud topeltsulgusid panna $foldersize.sum ette ...
Kommentaarid: 244 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 216
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Hinnavaatlus »  Üldfoorum »  Script või bat, mis kustutaks vanemad kaustad ja sisu, kui...
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.