Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата kaster:
Нужно пройтись по всем папкам и подпапкам, найти нужный файл и если он удовлетворяет шаблону (farmenu.ini) ставить ему атрибут »
Тогда уже проще вызвать attrib из ком. строки:

Код: Выделить весь код
If Not _FileSetAttribEx("c:\farmenu.ini", "+HS", 1) Then
    MsgBox(4096, "Error", "Problem setting attributes.")
EndIf

;Флаг = 1 -> Обработка файлов с указанными именами в текущей папке и во всех ее подпапках.
;Флаг = 2 -> Обработка и файлов, и папок.
;Флаги можно совмещать (BitOR(1, 2)).
Func _FileSetAttribEx($sFilePattern, $sAttributes, $iFlag=0)
    Local $sFlags = ""

    $sAttributes = StringRegExpReplace( _
        StringStripWS($sAttributes, 8), _
        "[-+]?([^-+])(?<=([-+])[^-+]|([-+])[^-+]{2}|([-+])[^-+]{3}|([-+])[^-+]{4}|([-+])[^-+]{5}|([-+])[^-+]{6}|([-+])[^-+]{7})", _
        " \2\3\4\5\6\7\8\1")

    If BitAND($iFlag, 1) = 1 Then $sFlags &= " /S "
    If BitAND($iFlag, 2) = 2 Then $sFlags &= " /D "

    Local $iPID = Run(@ComSpec & ' /C Attrib ' & $sAttributes & $sFlags & '"' & $sFilePattern & '"', '', @SW_HIDE, 2)
    Local $iError = @error, $sStdRead = ""

    While ProcessExists($iPID)
        Sleep(10)

        $sStdRead &= StdoutRead($iPID)
        If @error Then ExitLoop
    WEnd

    Return (Number($iError = 0) + Number(StringRegExp($sStdRead, ": \w:\\") = 0) = 2)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 14-09-2009 в 13:53. Причина: Поправил функцию

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:26, 10-09-2009 | #12