Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 3

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<?xml version="1.0" encoding="windows-1251"?>
<package>
    <job id="Work">
        <runtime>
            <description>
Имя: Remove.wsf
Автор: Verdugo
Описание:  
</description>
            <example>
Remove.wsf /days:14 /files:7 /folder:"D:\Backup"</example>
            <named name="days" helpstring="Количество дней, старше которых будут удаляться файлы" type="simple" required="false"/>
            <named name="file" helpstring="Минимальное количество файлов в папке. Если файлов меньше - обработка прекращается." type="simple" required="false"/>
            <named name="folder" helpstring="Путь к папке с файлами(и вложенными папками)" type="string" required="false"/>
        </runtime>
        <resource id="days">0</resource>
        <resource id="files">0</resource>
        <resource id="pc">none</resource>
        <resource id="folder">none</resource>
        <reference object="Scripting.FileSystemObject"/>
        <object id="fso" progid="Scripting.FileSystemObject"/>
        <object id="oXML" progid="MSXML2.DOMDocument.6.0"/>
        <object id="sh_net" progid="WScript.Network"/>
        <script language="VBScript">
            <![CDATA[
'***************'
Option Explicit '
'***************'
Dim rNode, fNode, attr
Dim days, files, folder
Dim renew : renew = 0
'***************'
Init_XML()
If getResource("pc") <> sh_net.ComputerName Then First_Run()
Init()
Get_Folder(fso.GetFolder(folder))
MsgBox "Готово!"
'********************************************************'
'*********************** First_Run **********************'
'********************************************************'
Sub First_Run()
    rNode.selectSingleNode("/package/job[@id='Work']/resource[@id='pc']").text = sh_net.ComputerName
    oXML.save(WScript.ScriptFullName)
    WScript.Arguments.ShowUsage()
    WScript.Quit(0)
End Sub
'********************************************************'
'************************* Init *************************'
'********************************************************'
Sub Init()
    days = CInt(getResource("days"))
    files = CInt(getResource("files"))
    folder = getResource("folder")
    If days = 0 Then
        Do
            days = InputBox("Введите количество дней, старше которых будут удаляться файлы","Ввод данных")
        Loop Until IsNumeric(days)
        renew = 1
    End If
    If getResource("files") = 0 Then
        Do
            files = InputBox("Введите минимальное количество файлов","Ввод данных")
        Loop Until IsNumeric(files)
        renew = 1
    End If
    If Not fso.FolderExists(getResource("folder")) Then
        Do
            folder = InputBox("Введите путь к папке с файлами","Ввод данных")
        Loop Until fso.FolderExists(folder)
        renew = 1
    End If
    If days <= 0 Or files <= 0 Then WScript.Quit(0)
    If renew Then
        rNode.selectSingleNode("/package/job[@id='Work']/resource[@id='days']").text = days
        rNode.selectSingleNode("/package/job[@id='Work']/resource[@id='files']").text = files
        rNode.selectSingleNode("/package/job[@id='Work']/resource[@id='folder']").text = folder
        oXML.save(WScript.ScriptFullName)
    End If
End Sub
'********************************************************'
'*********************** Init_XML ***********************'
'********************************************************'
Sub Init_XML()
    oXML.async = false
    oXML.load(WScript.ScriptFullName)
    If err.Number <> 0 Then
        err.Clear()
        MsgBox "Ошибка загрузки XML-документа"
        WScript.Quit(1)
    End If
    Set rNode = oXML.documentElement
End Sub
'********************************************************'
'************************ New_XML ***********************'
'********************************************************'
Sub New_XML()
    oXML.async = false
    oXML.loadXML("")
    oXML.appendChild(oXML.createProcessingInstruction("xml", "version='1.0' encoding='windows-1251'"))
    Set rNode = oXML.appendChild(oXML.createElement("root"))
End Sub
'********************************************************'
'********************** Get_Folder **********************'
'********************************************************'
Sub Get_Folder(folder)
    Dim item, file
    For Each item In folder.Subfolders
        Get_Folder(item)
    Next
    If folder.Files.Count > files Then
        New_XML
        For Each file In folder.Files
            Set fNode = rNode.appendChild(oXML.createElement("item"))
            Set attr = oXML.createAttribute("date")
            attr.value = Date2Long(DateValue(file.DateCreated))
            fNode.setAttributeNode(attr)
            fNode.text = file.Path
        Next
        Dim sel, count
        count = rNode.selectNodes("/root/item[@date>='" & Date2Long(DateValue(Now())-days) & "']").length
        If count < files Then
            count = files - count
        Else
            count = 0
        End If
        Set sel = rNode.selectNodes("/root/item[@date<'" & Date2Long(DateValue(Now())-days) & "']")
        Dim i
        For i = count To sel.length - 1
            fso.DeleteFile sel(i).text
        Next
    End If
End Sub
'********************************************************'
Function Date2Long(d)
    Date2Long = Year(d) & Right("0" & Month(d), 2) & Right("0" & Day(d), 2)
End Function
]]>
        </script>
    </job>
</package>

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 09:30 11-09-2013
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru