Главная > WSH скрипты > Скрипт копирования файлов с установленным архивным битом в резервный каталог

Скрипт копирования файлов с установленным архивным битом в резервный каталог


3 апреля 2012. Разместил: dimon
Скрипт предназначен для копирования файлов с установленным архивным битом. В целевом каталоге создается подкаталог с текущей датой. При копировании архивный бит с файлов снимается. Скрипт не обрабатывает вложенные папки. Результат работы логируется в указанный лог-файл.

'----------------------------------------------------------------------
'
' Copyright (c)  All rights reserved.
'
'
' AUTHOR: tudimon.com
' DATE: 03.04.2012
' NAME: copy_archive_files_v1.vbs
'
' COMMENT:
'
' Копирование файлов с установленным архивным битом в указанную папку в которой
' создается папка с текущей датой
'
' При копировании бит сбрасывается - тем самым указывается, что файл был скопирован.
' При изменении файла архивный бит удет установлен - тем самым указывается, что
' файл нужно копировать при архивировании.
'
'
'----------------------------------------------------------------------

' Задаваемые параметры для работы скипта

SourceFolder = "C:\Downloads"             ' Папка с файлами для архиврования
DestinationFolder = "C:\backup"         ' Папка для архивных копий

LogFilePath = "c:\log.log"                ' лог-файл
LogTXT = ""                             ' переменная для записи в лог



'----------------------------------------------------------------------

DestinationFolder = DestinationFolder & "\" & Year(now) & Right("00" & CStr(Month(Now)), 2) & Right("00" & CStr(Day(Now)), 2)

LogTXT = LogTXT & vbNewLine & "******************** " & Now & " ********************"

LogTXT = LogTXT & vbNewLine & "Destination Folder is " & DestinationFolder & vbNewLine

' создадим DestinationFolder если он не существует
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(DestinationFolder) Then
   Set objFolder = objFSO.GetFolder(DestinationFolder)
   LogTXT = LogTXT & vbNewLine & "Destination Folder " & DestinationFolder & " already exists" & vbNewLine
Else
   Set objFolder = objFSO.CreateFolder(DestinationFolder)
   LogTXT = LogTXT & vbNewLine & "Destination Folder " & DestinationFolder & " created now" & vbNewLine
End If
Set objFSO = Nothing


' бэкап
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(SourceFolder)
Set colFiles = objFolder.Files
For Each objFiles in colFiles

    If objFiles.Attributes and 32 Then
        ' архивный бит установлен, то копируем
        objFSO.CopyFile objFiles.Path, DestinationFolder & "\" & objFiles.Name
        
        ' 2log
        LogTXT = LogTXT & vbNewLine & objFiles.Path & " copy done"
        
        ' снимем архивный бит
        objFiles.Attributes = objFiles.attributes - 32
        
    End If

Next


' Пишем лог
Set FSO = CreateObject("Scripting.FileSystemObject")
Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
LogTXT = LogTXT & vbNewLine & "*************************************************************"
LogFile.WriteLine LogTXT
LogFile.Close

Set FSO = Nothing
Set objFSO = Nothing

WScript.Quit 0


copy_archive_files_v1.rar [2,11 Kb] (cкачиваний: 59)


Вернуться назад