giovedì 28 agosto 2014

copa file a intervalli periodici - vbs

'

Option Explicit

' vbs - copia ad intervalli predefini i file elencati in un file di testo

' fnomearchivio: contiene il path completro dei file da copiare.

' fileultimalettura: contiene la data dell'ultima copia eseguita.

' cartelladovescrivere: il mome della cartella dove copiare i file.

' dopogiorni: in giorni la periodicità della copia

'

dim fileultimalettura, contenutoletto, dataultimocontrollo, dataoggi, differenzagiorni, dopogiorni, fnomearchivio, cartelladovescrivere

fileultimalettura = "C:\installazioni-in-lavorazione\data-ultima-copia.txt"

' solo copia - configurazione

fnomearchivio = "C:\installazioni-in-lavorazione\elenco-file-installazione.txt"

cartelladovescrivere = "C:\cartella-di-sincronizzazione\installazioni-da-distribuire\"

dopogiorni = 7 ' il numero dei giorni di attesa prima di una nuova copia

dataoggi = Now ' data odierna

' = legge il file parametri - se non esiste lo crea con il valore di default passato

Call LeggioCreaFileParametri(fileultimalettura, dataoggi)

'

dataultimocontrollo = contenutoletto

'

differenzagiorni = DateDiff("y", dataultimocontrollo, dataoggi)

if differenzagiorni >= dopogiorni then

'Msgbox "da fare"

call leggielenco(fnomearchivio)

Call ScriviFileJolly(fileultimalettura, dataoggi)

end if

'

' === legge i nomi dei file da copiare ===

sub leggielenco(filedaleggere)

dim objFSO, objFile, strLine, nomearchivio

'

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile(filedaleggere, 1)

'

Do While objFile.AtEndOfStream = False

strLine = trim(objFile.ReadLine)

if len(strLine) > 0 then

nomearchivio = objFSO.GetFileName(strLine)

objFSO.CopyFile strLine, cartelladovescrivere & nomearchivio

end if

'

Loop

'

end sub

' ==== ====

Sub LeggioCreaFileParametri(sFileName, valoredefault)

'

dim objFSO, objFile, strLine

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(sFilename) Then

'esistefile = "si"

Set objFile = objFSO.OpenTextFile(sFileName, 1)

'contenutoletto = objFile.Readall

contenutoletto = objFile.ReadLine

Else

'esistefile = "no"

contenutoletto = valoredefault

Set objFile = objFSO.CreateTextFile(sFileName, TRUE)

objFile.WriteLine(valoredefault)

End If

'

Set objFile = Nothing

Set objFSO = Nothing

'

End sub

' ==== ====

Sub ScriviFileJolly(NomeArchivio, cosascrivere)

dim fso, rifefile

Set fso=CreateObject("Scripting.FileSystemObject")

Set rifefile = fso.CreateTextFile(NomeArchivio, TRUE)

rifefile.WriteLine(cosascrivere)

rifefile.Close

set rifefile = Nothing

End Sub

'

' === ==================

spegni il computer - vbs

'

option explicit

'

'' -s SHUTDOWN (spegne computer)' -r REBOOT (riavvia)' -t (secondi di attesa prima dello spegnimento o del riavvio)



dim objShell

Set objShell = WScript.CreateObject("WScript.Shell")

objShell.run ("shutdown -s -t 0")