Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Помощь в чистке шары (http://forum.oszone.net/showthread.php?t=279536)

AndreitchTex 20-03-2014 08:35 2326083

Помощь в чистке шары
 
Доброго времени суток форумчане. Нужна помощь! Нужно сделать скрипт который будет чистить шару расположенную на удаленном сервере под 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 2337471

Скрипт для 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


Время: 20:37.

Время: 20:37.
© OSzone.net 2001-