Заметки

Скрипт(VBScript) - резервное копирование данных

 

Данный скрипт поможет организовать резервное копирование данных. Для его работы надо указать папку источник (startdir="папка откуда"), папку назначения (enddir="папка куда") и условие для копирования:

 iffolder="dir" - все в папке и во вложениях

 iffolder="all" - все файлы в папке

 iffolder="ext"- все файлы в папке по расширению, при этом варианте указать и расширение файла (ext="txt"), ниже есть образец.

Далее копируем ниже-изложенный текст в блокнот и сохраняем с расширением *.VBS. Затем его можно запустить двойным кликом и если все хорошо - добавить сценарий в Windows для автоматизации этой задачи. Можно просто назначить новое задание.


' Копирование каталога с вложениями, файлов из папки или по расширению. iffolder="dir"or"all"or"ext"
' Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка
' Перед копированием надо снять атрибут только для чтения если он установлен у файла или папки
Set FSO = CreateObject("Scripting.FileSystemObject")
startdir="c:\start\" 'Источник
enddir="d:\end\" 'Целевая папка
iffolder="dir" ' dir - все в папке и во вложениях, all - все файлы в папке, ext - файлы из папки по расширению указать в ext="txt"
ext="txt" 'расширение

If not FSO.FolderExists(startdir) Then
MsgBox ("Не найден или не указан источник файлов")
WScript.Quit
End If

If not FSO.FolderExists(enddir) Then
FSO.CreateFolder enddir
End If

If Err.Number <> 0 Then
MsgBox ("Не верно указан целевой каталог: " & enddir)
WScript.Quit
End If

'копируем папку и все вложения
Function dircopy(startdir, enddir)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO. GetFolder (startdir)
Folder.Copy enddir, 1
End Function

'копируем все файлы из папки
Function allfilescopy(startdir, enddir)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFolder(startdir)
For Each File in File.Files
FSO.CopyFile File, enddir & File.Name, True
Next
End Function

'копируем все файлы из папки по их расширению - ext = txt, mdb, fdb
Function extfilescopy(startdir, enddir, ext)
' Ошибка возникает если не найден ни один файл "*.*", "*.txt", "*.??", "?.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFolder(startdir)
For Each File in File.Files
If LCase(FSO.GetExtensionName(File)) = ext Then
FSO.CopyFile File, enddir & File.Name, True
End If
Next
End Function

If iffolder="ext" Then
extfilescopy startdir, enddir, ext
End If

If iffolder="all" Then
allfilescopy startdir, enddir
End If

If iffolder="dir" Then
dircopy startdir, enddir
End If