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
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:).