Главная > 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 Вернуться назад |