Войти

Показать полную графическую версию : Помощь в чистке шары


AndreitchTex
20-03-2014, 08:35
Доброго времени суток форумчане. Нужна помощь! Нужно сделать скрипт который будет чистить шару расположенную на удаленном сервере под WinS 2003.
Условия которые выполняются в скрипте.
Удаление каждый день в полночь.
Копирование файлов полученных за сутки в папку с именем вчера(с ее последующей очисткой).
Удаление полностью всех директорий с последующим копированием новой(чистой). Так как юзеры любят добавлять левые папки.

Сам я в скриптах ничего не понимаю, лазил в просторах, искал. Что то находил. но не то!
Надеюсь на вашу помощь и понимание

Вот пример того что я находил. Но как его доработать ума не приложу

Dim fso, Period

Function DelFiles(Folder)
'*** Функция удаляет все файлы в папке Folder старше N дней

N = Period
Set f = fso.GetFolder(Folder)

Set fc = f.Files
For Each f1 in fc
Set file = fso.GetFile(f1)
diff = DateDiff("d", file.DateCreated, date,0, 0)
If N < 0 Then
file.delete
Else
If diff > N Then
file.delete
End If
End If
Next

End Function

Function DelSubFolders(SubFolder)
'*** Функция перебирает подпапки в папке SubFolder,
'*** вызывает функцию удаления файлов и удаляет пустые подпапки

'Dim f, f1, fc, ff, ff1, fc1, file, diff

Set f = fso.GetFolder(SubFolder)
Set fc = f.SubFolders
For Each f1 in fc
Set ff = fso.GetFolder(f1)
DelFiles(ff)
DelSubFolders(ff)

If f1.size = 0 then
f1.delete
End If
Next

End Function

Set fso = CreateObject("Scripting.FileSystemObject")

Share = WScript.Arguments(0)
Period = WScript.Arguments(1)

DelFiles(Share)
DelSubFolders(Share)

register01
13-04-2014, 19:08
Скрипт для powershell удаляет из шары все полностью и складывает в другую папку (например так d:\архив шары\13.04.2014.rar)

#Место расположения архиватора (в данном случае обязательно winrar, так как параметры для архивации именно для него)
$Rar="C:\Program Files\WinRAR\Rar.exe"

$path_otkuda="e:\твоя папка обмена\*"

$path_kuda="e:\куда будешь вчерашний хлам складывать\$(get-date -uformat '%d.%m.%Y').rar"

#сам процесс архивации
&$Rar a -m5 -df -ep1 -r $path_kuda $path_otkuda

#удаление файлов старше 30 дней
ls "$path_kuda" | ? {$_.lastwritetime -le (Get-date).addDays(-30)} | ri




© OSzone.net 2001-2012