Код:
ON ERROR RESUME NEXT
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
folder_out = ".........................." ' папка откуда копировать
folder_in = "............................" ' папка куда копировать
period = 3000 'милисекунды
'' Запускаться при каждой перезагрузке
'Set File2 = f.GetFile(WScript.ScriptFullName)
'File2.Copy ("d:\Distr\Gigabyte.vbs")
's.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Gigabyte", d:\Distr\Gigabyte.vbs"
do
' Получаем список файлов
Set f_out = fso.GetFolder(folder_out)
Set f_in = fso.GetFolder(folder_in)
Set fc = f_out.Files
s = "File name" & vbtab & "created" & "accessed" & vbtab & "modified" & vbcrlf
For Each f1 in fc
' если файл сушествеут проверяем изменился ли он
If (fso.FileExists(folder_in & f1.name)) Then
' существует... проверяем изменился ли он (по дате модификации)
set f_inc = fso.GetFile(folder_in & f1.name)
if (f1.DateLastModified = f_inc.DateLastModified) then
else
' одноименный фаил во входной папке переименовываем с добавлением даты модификации
tmp = replace(f_inc.DateLastModified & "." & fso.GetExtensionName(f_inc.name),":","_")
tmp = replace(tmp," ","_")
'WScript.Echo tmp & vbtab & f_inc.name
'Wscript.Echo replace(f_inc.DateLastModified & "." & fso.GetExtensionName(f_inc.name),":","_")
f_inc.Copy(folder_in & fso.GetBaseName(f_inc.name) & "_" & tmp)
f_inc.Delete(vbTrue)
' копируемый файл просто копируем без изменения
f1.Copy (folder_in & f1.name )
end if
Else
' не существует.... копируем
f1.Copy (folder_in & f1.name)
End If
's = s & f1.shortname & vbtab & f1.DateCreated & vbtab & f1.DateLastAccessed & vbtab & f1.DateLastModified & vbcrlf
Next
WScript.Sleep(period)
loop
's.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Gigabyte", "C:\WINDOWS\SYSTEM\Gigabyte.vbs"