DMBS
21-05-2014, 10:47
Здравствуйте, имеется хороший динамический скрипт с HAbra , хотелось бы добавить еще пару штрихов.
1)Каким образом можно добавить Время к имени архива, в данном скрипте добавляется только дата:
ZipFile = OutputFolder & Date & "_wwroot_backup.zip" ' Как назвать ====================|]
Пробовал дописывать с "& Time" и различными вариациями, а также с помощью определения переменной Time, ничего не помогло... время упорно не хочет отображаться в имени архива.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) При создании архива штатным архиватором Windows вылазит ошибка "Windows не удалось добавить один или несколько пустых каталогов в сжатую папку" Каким образом
есть возможность обойти и скрыть данную ошибку? Люди пишут , что это баг Windows архиватора. "On error resume next" ситуацию не спасает. Либо как я понимаю использовать для архивирования 7zip либо Winrar? (хотелось бы унифицировать без доп.по штатными средствами). Заранее спасибо за помощь
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'================= Комментировать блок если вариант с аргументами =============|
InputFolder = "c:\inetpub\wwwroot" ' Какую папку архивировать ==========================|
OutputFolder = "l:\Backup\" ' Путь куда архивировать ===========================|
ZipFile = OutputFolder & Date & "_wwroot_backup.zip" ' Как назвать ====================|
Life = "-10" ' Срок жизни файлов в папке архивирования =======================|
'==============================================================================|
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)
Do Until objShell.NameSpace(ZipFile).Items.Count = objShell.NameSpace(InputFolder).Items.Count
WScript.Sleep 500 ' Arbitrary polling delay
Loop
'Удаление в папке всех файлов старше Life дней.
Set FSO = CreateObject("Scripting.FileSystemObject")
'Выставляем количество дней, старше которых будет производится удаление файлов.
OldDate = DateAdd("d", Life , date)
'Указываем директорию в которой удаляем старые файлы.
Set Folder = FSO.GetFolder(OutputFolder)
Set FC = Folder.Files
For Each F1 in FC
If F1.DateLastModified < OldDate Then
F1.Delete
End If
Next
1)Каким образом можно добавить Время к имени архива, в данном скрипте добавляется только дата:
ZipFile = OutputFolder & Date & "_wwroot_backup.zip" ' Как назвать ====================|]
Пробовал дописывать с "& Time" и различными вариациями, а также с помощью определения переменной Time, ничего не помогло... время упорно не хочет отображаться в имени архива.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) При создании архива штатным архиватором Windows вылазит ошибка "Windows не удалось добавить один или несколько пустых каталогов в сжатую папку" Каким образом
есть возможность обойти и скрыть данную ошибку? Люди пишут , что это баг Windows архиватора. "On error resume next" ситуацию не спасает. Либо как я понимаю использовать для архивирования 7zip либо Winrar? (хотелось бы унифицировать без доп.по штатными средствами). Заранее спасибо за помощь
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'================= Комментировать блок если вариант с аргументами =============|
InputFolder = "c:\inetpub\wwwroot" ' Какую папку архивировать ==========================|
OutputFolder = "l:\Backup\" ' Путь куда архивировать ===========================|
ZipFile = OutputFolder & Date & "_wwroot_backup.zip" ' Как назвать ====================|
Life = "-10" ' Срок жизни файлов в папке архивирования =======================|
'==============================================================================|
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)
Do Until objShell.NameSpace(ZipFile).Items.Count = objShell.NameSpace(InputFolder).Items.Count
WScript.Sleep 500 ' Arbitrary polling delay
Loop
'Удаление в папке всех файлов старше Life дней.
Set FSO = CreateObject("Scripting.FileSystemObject")
'Выставляем количество дней, старше которых будет производится удаление файлов.
OldDate = DateAdd("d", Life , date)
'Указываем директорию в которой удаляем старые файлы.
Set Folder = FSO.GetFolder(OutputFolder)
Set FC = Folder.Files
For Each F1 in FC
If F1.DateLastModified < OldDate Then
F1.Delete
End If
Next