Skrypt kasujący stare pliki – VBS cz.11

Print Friendly, PDF & Email

Ostatnimi czasy w firmie musiałem pobawić się nieco w programistę, aby ułatwić sobie życie oraz ograniczyć stratę czasu na powtarzające się czynności.
Na maszynach produkcyjnych mamy kilkanaście komputerów sterujących ich pracą. Codziennie pojawiają się na nich dziesiątki plików w których znajdują się informacje techniczne potrzebne do produkcji okien.

Aby zaoszczędzić sobie spacerów po hali stworzyłem skrypt dzięki, któremu kasowane są tylko pliki z konkretnym rozszerzeniem, i tylko takie które mają więcej niż 90 dni.

Kasowanie plików zajmuje do około 60 minut w zależność od ich ilości, dzięki czemu w ciągu roku jesteśmy w stanie zaoszczędzić przy kasowaniu 2x w miesiącu 24h pracy.

1) Sprawdzamy, które maszyny działają

Poniższa funkcja sprawdza, które maszyny są online, ich numery IP są zapisywane w pliku tekstowym.

function ComputerOnline ()


Set WshShell = CreateObject(„WScript.Shell”)

Dim computerPing,iter, objFSO,objCreateTextFile,objTextFile

computerPing=”10.10.10″


Set objFSO = CreateObject(„Scripting.FileSystemObject”)

Set objCreateTextFile = objFSO.CreateTextFile(„\192.168.100.100SkryptyKasowaniePlikowComputerOnline.txt”,True)

objCreateTextFile.Close


for iter = 21 To 26 Step 1 

PINGFlag = Not CBool(WshShell.run(„ping -n 1 ” & computerPing & „.” & iter,0,True))

      If PINGFlag = True Then

        Set objTextFile = objFSO.OpenTextFile(„\192.168.100.100SkryptyKasowaniePlikowComputerOnline.txt”,8) 

objTextFile.WriteLine „\” & computerPing & „.” & iter & „fablist”

objTextFile.Close

      Else

      

 cO=””

      ComputerOnline=cO

      End If

 

Next 


end Function


2) Kasowanie plików z maszyn online

Poniższa funkcja kasuje pliki, które znajdują się na komputerach, które w chwili się jego wykonywania  są włączone. Kasowane są tylko te, których data modyfikacji jest większa niż 90 dni poczynając od obecnej daty oraz posiadają rozszerzenie „fa1”  lub „FA1”. Do tego w pliku Deleting.txt zapisują się logi, które przechowują numery skasowanych plików, datę kasowania oraz daty ostatniej ich modyfikacji.

Function Deleting()


Dim objFSO,objFolder,objFile,ModifiedDate,colFiles,FileName,p,howManyDays,wynik,computerName,strComputer

howManyDays=90

Set objFSO = CreateObject(„Scripting.FileSystemObject”)

Set objTextFile = objFSO.OpenTextFile(„\192.168.100.100SkryptyDeleting.txt”,8) 

Set readFile = objFSO.OpenTextFile(„\192.168.100.100SkryptyComputerOnline.txt”,1) 

objTextFile.WriteLine „Kasowanie rozpoczete o: ” & date() & ” ” & time()  


Do While readFile.AtEndOfStream <> True

    strComputer = readFile.ReadLine

objTextFile.WriteLine „” & strComputer

 Set objFolder = objFSO.GetFolder(strComputer)


 Set colFiles = objFolder.Files

  'Sprawdzenie kazdego pliku w katalogu

   For Each objFile in colFiles

    

’Rozbicie pliku na nazwe …

FileName=objFile.Name 

’ oraz date modyfikacji

ModifiedDate= objFile.DateLastModified

’Skasowanie plikow starszych niz xx dni

if ModifiedDate < date() – howManyDays and (objFSO.GetExtensionName(objFile.Name) = „fa1” or objFSO.GetExtensionName(objFile.Name) = „FA1”) then

’Zapisanie do pliku nazwy pliku oraz daty modyfikacji 

objTextFile.WriteLine „” & FileName & „, ” & ModifiedDate

’Skasowanie pliku    

objFSO.DeleteFile (strComputer & FileName) 

   else

    d=””

  Deleting = d  

   end if

Next

Loop

objTextFile.Close

readFile.Close

end Function


Print Friendly, PDF & Email

Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT