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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как заменить строку в ENTRIES.INI средствами автоматизации. (http://forum.oszone.net/showthread.php?t=136083)

semiono 28-03-2009 03:13 1076886

Как заменить строку в ENTRIES.INI средствами автоматизации.
 
Нужно немножко не сложной автоматики, но лучше чтоб кто-то подсказал...
Условия:
Имеется директория в которой файлы:
SVCPACK\
ENTRIES.INI

ENTRIES.INI выглядит так
Код:

[EditFile]
SVCPACK.INF,SetupHotfixesToRun,AddProgram

[AddProgram]
filename.exe /verysilent

Мне нужно каждый раз положить в папку SVCPACK файл с новым именем *.exe и прописать его имя в ENTRIES.INI вместо filename.exe
и после этого запаковать в rar- архив.
rar a newname -ac -m3 -r -t SVCPACK ENTRIES.INI

Самое сложное наверное для меня заменить строку в ENTRIES.INI. Хотя и получить переменную прочитав SVCPACK\*.exe наверное тоже
не просто?

volk1234 28-03-2009 09:59 1076986

semiono
Измените название темы. Нынешнее - Архивирование... не соответствует правилам конференции, и не раскрывает вашего вопроса.
Чем быстрее вы сформулируете ваш вопрос, тем быстрее вам помогут. Пример правильного названия Как заменить строку в ENTRIES.INI средствами автоматизации.

volk1234 30-03-2009 00:41 1078496

Цитата:

Мне нужно каждый раз положить в папку SVCPACK файл с новым именем *.exe и прописать его имя в ENTRIES.INI вместо filename.exe
и после этого запаковать в rar- архив.
Пожалуйста, уточните вопрос.
Что значит каждый раз положить??

proxy 30-03-2009 01:26 1078525

список в ini должен обновляться
или дополняться?

Цитата:

Цитата semiono
rar a newname -ac -m3 -r -t SVCPACK ENTRIES.INI »

именно так?
а не так:
Код:

rar.exe a filename.exe -ac -m3 -r -t

пример чтения/замены:
Код:

#region: - Option
    Opt('MustDeclareVars',      1)
    Opt('TrayIconDebug',        1)
    Opt('TrayIconHide',        0)
#endregion

Global  $sFilePath = @ScriptDir & '\SVCPACK\ENTRIES.INI'
Global  $sFileText = FileRead($sFilePath)
Global  $hFile, $vSerch, $sAddProgram, $sAddProgramNew

;~      Чтение:
        $vSerch = StringRegExp($sFileText, '(?i)\[AddProgram\]\s*\r*\n*\s*(.+)\s+/verysilent', 1)
        If @Error == 1 Then
            $vSerch = ''
        EndIf
        If
IsArray($vSerch) Then
            $sAddProgram = $vSerch[0]
        EndIf
        MsgBox(64, 'Результат чтения:', $sAddProgram)

;~      Замена:
        $sAddProgramNew = 'New_' & $sAddProgram
        $sFileText
= StringRegExpReplace($sFileText, '(?i)\[AddProgram\]\s*\r*\n*\s*(.*)/verysilent', '[AddProgram]' & @CRLF & $sAddProgramNew & ' /verysilent')
        MsgBox(64, 'Результат записи:', $sFileText)

;~      Запись:
        $hFile = FileOpen($sFilePath, 2)
        FileWrite($hFile, $sFileText)
        FileClose($hFile)


semiono 31-03-2009 16:23 1080139

А хорошо! Попробую этот пример подогнать!

newname - достаточно, так как рар сам добавляет рсасширение .zip и сам открывается по rar
(zip - более подходит для дистрибутизации, так как он встроен в винду и значится у всех есть)

поясню:
я часто переделываю свои хотфиксы, и папка SVCPACK используется под разные пакеты, в файле
ENTRIES.INI лишь заменяется имя пакета, остальное всё одинаково. Например, "WinRar.exe"
А так как я делаю часто исправление и пакетов много, то хочется автоматизировать это дело.
Причём у меня свои заморочки ещё, я например люблю дату файлов выставлять одинаково
и аттрибуты A тоже сбрасывать.

semiono 31-03-2009 17:18 1080220

Мне нужно прочесть имя файла @ScriptDir & "\SVCPACK\*.exe" а не содержимое!
Наверное будет так - FileGetLongName(@ScriptDir & '\SVCPACK\*.exe')
В StringRegExpReplace я конечно запутался :( ...так как надо отсечь только имя без пути.
Можно бы было просто вписать в четвёртую строку полученный @filename.exe & "/verisilent"
но я что-то не нашёл как установить курсор в нужную строку, чтоб не затирать весь файл от начала?
а с регексп заменой, я опять же не шарю... Думал уже сам смогу, но не получается.
Чтоб не было недразумений -
@ScriptDir & "\SVCPACK\*.exe" - это @имя некого файла, можно и так даже *.* или даже *
@ScriptDir & "\ENTRIES.INI" - этот файл редактируется, в его последнюю строку надо внести
только @имя + /VERYSILENT
Пример:
Код:

[EditFile]
SVCPACK.INF,SetupHotfixesToRun,AddProgram

[AddProgram]
TBIView.exe /verysilent


semiono 07-04-2009 22:07 1087258

Код:

$x = FileGetShortName(@ScriptDir & "\SVCPACK\*.*",1)
MsgBox(4096,"Test",$x, 10)

Вот блин функция, что напишешь то и вернёт!
Это же тупо, написать в параметре функции путь с именем файла и на выходе его же и получить! 0O

А между тем я так и не понял, чтоли нету способа получить имя файла *.exe в папке svcpack\
Да хоть бы и с путём, хотя я запарюсь отсекать потом лишнее регеспом... ??


Я уже думал сейчас всё получится, но прежняя загвоздка в получении имени ексешнига
Код:

IniWrite(@ScriptDir & "\ENTRIES.INI","AddProgram","",$name)
Exit

Причём ещё одна неожиданность, интересно пустое поле прокатит? Так как там отсутствует KEY
TBIView.exe /verysilent - сразу идёт!

proxy 07-04-2009 23:06 1087316

Код:

#region: - Option
    Opt('MustDeclareVars',      1)
    Opt('TrayIconDebug',        1)
    Opt('TrayIconHide',        0)
#endregion

Global  $sIniFileName = 'entries.ini'
Global  $sDirPath = @ScriptDir & '\SVCPACK'

If StringRight($sDirPath, 1) == '\' Then $sDirPath = StringTrimRight($sDirPath, 1)
_FindFile()

Func _FindFile()
    Local $hFind, $sFileName

    $hFind
= FileFindFirstFile($sDirPath & '\*.*')
    If $hFind == -1 Then
        MsgBox(16, 'Ошибка', 'В искомой папке ненайденно файлов')
        Exit
    EndIf

    While
1
        $sFileName = FileFindNextFile($hFind)
        If @error Then ExitLoop

        If
$sFileName = $sIniFileName Then ContinueLoop

        _WriteFileName($sFileName)
        ExitLoop
    WEnd


    FileClose($hFind)
EndFunc

Func
_WriteFileName($sFileName)
    Local $sIniFileText = FileRead($sDirPath & '\' & $sIniFileName)
    $sIniFileText = StringRegExpReplace($sIniFileText, '(?s)(\[.+\]).+', '\1') & @CRLF & $sFileName & ' /verysilent'

    Local $hFile = FileOpen($sDirPath & '\' & $sIniFileName, 2)
    FileWrite($hFile, $sIniFileText)
    FileClose($hFile)
EndFunc

имхо, думаю тут многие не против помочь.
но мысли читать очень сложно, к тому же на расстоянии )))

попробуйте более точно излагать вопросы, пример:
1. Как узнать имена всех файлов в папке.
2. Как записать имя первого найденного файла, из пункта 1, в ini файл, структура ini <такая-то>, в строку ini файла <такую-то> в <такой-то форме>, сам ini файл находится <там-то>.
и т.д.

необязательно именно так, но чуть более конкретнее, тал легче ответить )))

semiono 07-04-2009 23:27 1087336

Цитата:

Цитата proxy
но мысли читать очень сложно, к тому же на расстоянии »

:)

semiono 08-04-2009 00:03 1087368

Код:

    Local $hFile = FileOpen($sIniFileName, 2)
    FileWrite($hFile, $sIniFileText & @CRLF)
    FileClose($hFile)

Чуть не так было, ENTRIES.INI лежит рядом с папкой, но не в ней. @CRLF для красоты добавил тоже :)

А вот насчёт обыного IniWrite() для записи тут нельзя использовать? Просто интересно.
Хотя проблемма помоему, так как поле KEY не существует, хотя это и INI файл поидее...

Типа класически было бы так
[AddProgram]
value = zzzz.exe /verysilent ; но тут не стандарт какой-то.

Но полюбому спасибо, так как уже итак работает!

semiono 08-04-2009 01:09 1087432

Пожалуйста, добейте этот скрипт?
Нужны ещё две команды ->
FileDelete(@ScriptDir & $sFileName) ; это не обязательно, но желательно.
И главное для архивации ->
ShellExecute(@SystemDir & "\rar.exe", "a" & $sFileName & "-ac -m3 -r -t SVCPACK ENTRIES.INI", @ScriptDir, "", @SW_HIDE)
Хотя тут сложность в замене расширения .exe на .zip если брать $sFileName из в вашей функции.
Я сколько возился, никак не могу сам зделать... В общем виде примерно такое нужно.

Код:

Global  $sIniFileName = 'entries.ini'
Global  $sDirPath = @ScriptDir & '\SVCPACK'

FileSetAttrib(@ScriptDir,"-RASHNOT",1)
FileSetAttrib(@ScriptDir,"-RASHNOT",1)
FileSetAttrib(@ScriptDir,"-RASHNOT",1)
FileSetTime(@ScriptDir,"20010101000000",0,1)
FileSetTime(@ScriptDir,"20010101000000",1,1)
FileSetTime(@ScriptDir,"20010101000000",2,1)

; FileDelete(@ScriptDir & $sFileName)

If StringRight($sDirPath, 1) == '\' Then $sDirPath = StringTrimRight($sDirPath, 1)
_FindFile()

Func _FindFile()
    Local $hFind, $sFileName

    $hFind = FileFindFirstFile($sDirPath & '\*.*')
    If $hFind == -1 Then
        MsgBox(16, '', 'FILE_NOT_FOUND')
        Exit
    EndIf

    While 1
        $sFileName = FileFindNextFile($hFind)
        If @error Then ExitLoop

        If $sFileName = $sIniFileName Then ContinueLoop

        _WriteFileName($sFileName)
        ExitLoop
    WEnd

    FileClose($hFind)
EndFunc

Func _WriteFileName($sFileName)
    Local $sIniFileText = FileRead($sIniFileName)
    $sIniFileText = StringRegExpReplace($sIniFileText, '(?s)(\[.+\]).+', '\1') & @CRLF & $sFileName & ' /verysilent'

    Local $hFile = FileOpen($sIniFileName, 2)
    FileWrite($hFile, $sIniFileText & @CRLF)
    FileClose($hFile)
EndFunc

; ShellExecute(@SystemDir & "\rar.exe", "a" & $sFileName & "-ac -m3 -r -t SVCPACK ENTRIES.INI", @ScriptDir, "", @SW_HIDE)
Exit


proxy 08-04-2009 02:39 1087465

Код:

Global  $sIniFileName = 'entries.ini'
Global  $sDirPath = @ScriptDir & '\SVCPACK'
If StringRight($sDirPath, 1) == '\' Then $sDirPath = StringTrimRight($sDirPath, 1)

FileSetAttrib($sDirPath, '-RASHNOT', 1)
FileSetAttrib($sDirPath, '-RASHNOT', 1)
FileSetAttrib($sDirPath, '-RASHNOT', 1)
FileSetTime($sDirPath, '20010101000000', 0, 1)
FileSetTime($sDirPath, '20010101000000', 1, 1)
FileSetTime($sDirPath, '20010101000000', 2, 1)

_FindFile('del')
MsgBox(64, 'Внимание', 'Скопирутей необходимый файл в папку:' & @CRLF & $sDirPath)
_FindFile('write')

Func _FindFile($sAction)
    Local $hFind, $sFileName

    $hFind
= FileFindFirstFile($sDirPath & '\*.*')
    If $hFind == -1 Then
        MsgBox(16, '', 'FILE_NOT_FOUND')
        Exit
    EndIf

    While
1
        $sFileName = FileFindNextFile($hFind)
        If @error Then ExitLoop

        If
$sFileName = $sIniFileName Then ContinueLoop

        If
$sAction == 'write' Then
            _WriteFileName($sFileName)
            ExitLoop
        Else

            FileDelete($sDirPath & '\' & $sFileName)
        EndIf
    WEnd


    FileClose($hFind)
EndFunc

Func
_WriteFileName($sFileName)
    Local $sIniFileText = FileRead($sIniFileName)
    $sIniFileText = StringRegExpReplace($sIniFileText, '(?s)(\[.+\]).+', '\1') & @CRLF & $sFileName & ' /verysilent'

    Local $hFile = FileOpen($sIniFileName, 2)
    FileWrite($hFile, $sIniFileText & @CRLF)
    FileClose($hFile)

    $sFileName = StringTrimRight($sFileName, 3) & 'zip'

;~  Run(@SystemDir & '\rar.exe', 'a' & $sDirPath & '\' & $sFileName & '-ac -m3 -r -t SVCPACK ENTRIES.INI', @ScriptDir, '', @SW_HIDE)
EndFunc


Про архивацию не понял, расскажите подробней.
Как / куда / откуда / что и кто / дожен архивироваться ...

semiono 08-04-2009 07:52 1087530


WinRAR.zip содержит:
*/SVCPACK/WinRAR.exe
*/ENTRIES.INI

rar.exe лежит в %пути%, как это и положенно в system32, если с этим что не понятно вдруг.
Всё происходит в @ScriptDir, файлик ENTRIES.au3 - это я так назвал автоит... когда зделаю основательно перегоню в EXE.
Ну а вся заморочка как обычно, чтоб различные имена подставлять.
Например, в другой раз имя архива и экзешника будут другими, не WinRAR, а скажем
SVCPACK\WinRoll.exe и > WinRoll.zip

Команда паковки была полностью правильная
ShellExecute(@SystemDir & "\rar.exe", "a " & $var &".zip -ac -m3 -r -t SVCPACK ENTRIES.INI", @ScriptDir, "", @SW_HIDE)
если только $var определить, с чем я не справляюсь.

В консоли так:
# rar.exe a WinRAR.zip -ac -m3 -r -t SVCPACK ENTRIES.INI

Совсем было бы хорошо потом ещё и скопировать (после создания архива)
@ScriptDir & "\SVCPACK\WinRAR.exe" в "D:\Apps" ; хранилище бинарей.
@ScriptDir & "\WinRAR.zip" в "D:\Patch" ; моё хранилище хотфиксов :)
Так как тут снова понадобиться каждый раз менять имя, то есть WinRAR нельзя оставить...
Но я могу обойтись. Хотяб запаковать автоматически :)

Сразу забыл сказать, удаление архива нужно лишь для чистоты работы, как бы предостережение от
создания архива поверх архива... Хотя впринципе это возможно, но как бы грязная работа...
Если архивы перетаскивать скриптом в хранилище, то можно и не зачищать скрипт директорию тогда.

Может что-то и не понятно всёравно? Я объясню. И спасибо, что уже облегчили мне рутинный труд.

proxy 08-04-2009 08:55 1087565

работаю со вчеращено утра, читаю и понимаю - что ни чего не понимаю :)
проверьте так:

Код:

Global  $sIniFileName = 'entries.ini'
Global  $sDirSvcPackPath = @ScriptDir & '\SVCPACK'
Global  $sDirAppsPath  = 'D:\Apps'
Global  $sDirArhivPath = 'D:\Patch'

If StringRight($sDirSvcPackPath, 1) == '\'  Then $sDirSvcPackPath = StringTrimRight($sDirSvcPackPath, 1)
If StringRight($sDirAppsPath, 1) == '\'    Then $sDirAppsPath = StringTrimRight($sDirAppsPath, 1)
If StringRight($sDirArhivPath, 1) == '\'    Then $sDirArhivPath = StringTrimRight($sDirArhivPath, 1)

If NOT FileExists($sDirSvcPackPath) Then DirCreate($sDirSvcPackPath)
If NOT FileExists($sDirAppsPath)    Then DirCreate($sDirAppsPath)
If NOT FileExists($sDirArhivPath)  Then DirCreate($sDirArhivPath)

FileSetAttrib($sDirSvcPackPath, '-RASHNOT', 1)
FileSetAttrib($sDirSvcPackPath, '-RASHNOT', 1)
FileSetAttrib($sDirSvcPackPath, '-RASHNOT', 1)
FileSetTime($sDirSvcPackPath, '20010101000000', 0, 1)
FileSetTime($sDirSvcPackPath, '20010101000000', 1, 1)
FileSetTime($sDirSvcPackPath, '20010101000000', 2, 1)

_FindFile()
_FindFile('del'); все что будет найденно в $sDirSvcPackPath будет удаленно

Func _FindFile($sAction='')
    Local $hFind, $sFileName

    $hFind
= FileFindFirstFile($sDirSvcPackPath & '\*.*')
    If $hFind == -1 Then
        MsgBox(16, '', 'FILE_NOT_FOUND')
        Exit
    EndIf

    While
1
        $sFileName = FileFindNextFile($hFind)
        If @error Then ExitLoop

        If
$sAction == 'del' Then
            FileDelete($sDirSvcPackPath & '\' & $sFileName)
        Else
            If
$sFileName = $sIniFileName Then ContinueLoop
            _ArchivingCopyFile($sFileName)
            ExitLoop
        EndIf
    WEnd


    FileClose($hFind)
EndFunc

Func
_ArchivingCopyFile($sFileName)
    Local $sIniFileText =  '[EditFile]' & @CRLF & 'SVCPACK.INF,SetupHotfixesToRun,AddProgram' & @CRLF & @CRLF & _
                            '[AddProgram]'  & @CRLF & $sFileName & ' /verysilent'

    Local $hFile = FileOpen($sIniFileName, 2)
    FileWrite($hFile, $sIniFileText & @CRLF)
    FileClose($hFile)

    Local $sFileNameZIP = StringTrimRight($sFileName, 3) & 'zip'

    Run(@SystemDir & '\rar.exe', 'a' & $sFileNameZIP & ' -ac -m3 -r -t SVCPACK ENTRIES.INI', @ScriptDir, '', @SW_HIDE)

    FileCopy($sDirSvcPackPath & '\' & $sFileName, $sDirAppsPath, 8); с перезаписью файлов с таким же названием
    FileCopy(@ScriptDir & '\' & $sFileNameZIP, $sDirArhivPath, 8); с перезаписью файлов с таким же названием
EndFunc


semiono 08-04-2009 10:09 1087609

ошибка Run(@SystemDir & '\rar.exe', 'a' ...
надо так ShellExecute(@SystemDir & '\rar.exe', 'a ' ...

Екзешник полетел туда, куда надо успешно! :)
А вот zip почему-то в скрипт директории остаётся. Я подумаю над этим... Спасибо!!!!!
Но мне странно, почему здесь FileCopy как FileMove работает? Какраз FileMove мне более подходит! :)

Кажись, Sleep() надо добавить под архивацией... Теперь оно успевает, но архив действительно копируется,
а экзешник полностью перемещается из C:\SVCPACK в D:\Apps! Пока это загадка для мну... где-то баг затаился :)

proxy 08-04-2009 10:17 1087621

недоглядел, надо так:
Код:

Run(@SystemDir & '\rar.exe a' & $sFileNameZIP & ' -ac -m3 -r -t SVCPACK ENTRIES.INI', @ScriptDir, @SW_HIDE)
Цитата:

А вот zip почему-то в скрипт директории остаётся.
поройте уту строчку:
Цитата:

FileCopy(@ScriptDir & '\' & $sFileNameZIP, $sDirArhivPath, 8)
подправте адрес где находится ZIP файл: @ScriptDir & '\' & $sFileNameZIP

Цитата:

Но мне странно, почему здесь FileCopy как FileMove работает? Но мне Move какраз более подходит!
если что то лежит не в папке SVCPACK - то да.
а так, все что в папке SVCPACK, удаляется вот этой строчкой: _FindFile('del')

если кроме EXE и ZIP файла удалять больше ничего не нужно,
то _FindFile('del') можно не использовать, а использовать только FileMove

semiono 08-04-2009 10:48 1087659

Вообщем, я не сразу заметил _FindFile('del'), и думал что файлы зачищаются перемещением,
что собсно и выгодней было бы в моём случае.
Закоментировал _FindFile('del'), переправил все FileCopy на FileMove,
заменил Run() на ShellExecuteWait() Получилось то, что хотел! Ура!

Отличная работа! Труд не зря, спасибо! Такие скрипты надо собирать в коллекцию! :)

semiono 08-04-2009 12:04 1087752

Практически готовый конструктор для паковки хотфиксов :)
Вот что получилось:
Код:

Global  $sDirAppsPath  = '.\Apps'
Global  $sDirArhivPath = '.\Patch'
Global  $sDirSvcPackPath = '.\SVCPACK'
Global  $sIniFileName = 'entries.ini'

If StringRight($sDirSvcPackPath, 1) == '\'  Then $sDirSvcPackPath = StringTrimRight($sDirSvcPackPath, 1)
If StringRight($sDirAppsPath, 1) == '\'    Then $sDirAppsPath = StringTrimRight($sDirAppsPath, 1)
If StringRight($sDirArhivPath, 1) == '\'    Then $sDirArhivPath = StringTrimRight($sDirArhivPath, 1)

If NOT FileExists($sDirSvcPackPath) Then DirCreate($sDirSvcPackPath)
If NOT FileExists($sDirAppsPath)    Then DirCreate($sDirAppsPath)
If NOT FileExists($sDirArhivPath)  Then DirCreate($sDirArhivPath)

FileSetAttrib(@ScriptDir, '-RASHNOT', 1)
FileSetAttrib(@ScriptDir, '-RASHNOT', 1)
FileSetAttrib(@ScriptDir, '-RASHNOT', 1)
FileSetTime(@ScriptDir, '20010101000000', 0, 1)
FileSetTime(@ScriptDir, '20010101000000', 1, 1)
FileSetTime(@ScriptDir, '20010101000000', 2, 1)

_FindFile()
; _FindFile('del'); все что будет найденно в $sDirSvcPackPath будет удаленно

Func _FindFile($sAction='')
    Local $hFind, $sFileName

    $hFind = FileFindFirstFile($sDirSvcPackPath & '\*.*')
    If $hFind == -1 Then
        MsgBox(16, '', 'FILE_NOT_FOUND')
        Exit
    EndIf

    While 1
        $sFileName = FileFindNextFile($hFind)
        If @error Then ExitLoop

;        If $sAction == 'del' Then
;            FileDelete($sDirSvcPackPath & '\' & $sFileName)
;        Else
            If $sFileName = $sIniFileName Then ContinueLoop
            _ArchivingCopyFile($sFileName)
            ExitLoop
;        EndIf
    WEnd

    FileClose($hFind)
EndFunc

Func _ArchivingCopyFile($sFileName)
    Local $sIniFileText =  '[EditFile]' & @CRLF & 'SVCPACK.INF,SetupHotfixesToRun,AddProgram' & @CRLF & @CRLF & _
                            '[AddProgram]'  & @CRLF & $sFileName & ' /verysilent'

    Local $hFile = FileOpen($sIniFileName, 2)
    FileWrite($hFile, $sIniFileText & @CRLF)
    FileClose($hFile)

    Local $sFileNameZIP = StringTrimRight($sFileName, 3) & 'zip'

        FileSetAttrib($sIniFileName, '-RASHNOT', 1)
        FileSetAttrib($sIniFileName, '-RASHNOT', 1)
        FileSetAttrib($sIniFileName, '-RASHNOT', 1)
        FileSetTime($sIniFileName, '20010101000000', 0, 1)
        FileSetTime($sIniFileName, '20010101000000', 1, 1)
        FileSetTime($sIniFileName, '20010101000000', 2, 1)

    ShellExecuteWait(@SystemDir & '\rar.exe', 'a ' & $sFileNameZIP & ' -ac -m3 -r -t SVCPACK ENTRIES.INI', @ScriptDir, '', @SW_HIDE)

    FileMove($sDirSvcPackPath & '\' & $sFileName, $sDirAppsPath, 9); с перезаписью файлов с таким же названием
    FileMove(@ScriptDir & '\' & $sFileNameZIP, $sDirArhivPath, 9); с перезаписью файлов с таким же названием
EndFunc

FileSetAttrib($sDirAppsPath, '-A+R', 1)
FileSetAttrib($sDirAppsPath, '-A+R', 1)
FileSetAttrib($sDirAppsPath, '-A+R', 1)
FileSetTime($sDirAppsPath, '20010101000000', 0, 1)
FileSetTime($sDirAppsPath, '20010101000000', 1, 1)
FileSetTime($sDirAppsPath, '20010101000000', 2, 1)

FileSetAttrib($sDirArhivPath, '-A+R', 1)
FileSetAttrib($sDirArhivPath, '-A+R', 1)
FileSetAttrib($sDirArhivPath, '-A+R', 1)
FileSetTime($sDirArhivPath, '20010101000000', 0, 1)
FileSetTime($sDirArhivPath, '20010101000000', 1, 1)
FileSetTime($sDirArhivPath, '20010101000000', 2, 1)
Exit



Время: 09:47.

Время: 09:47.
© OSzone.net 2001-