![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GetCurrentDirectory |
|
[решено] GetCurrentDirectory
|
Ветеран Сообщения: 842 |
Наверное нету в AutoIt3 такой фитчи? Мне надо чтоб:
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) Exit кстати, неудобство в том что в FileSetTime("", "", 0+1+2=3, 1) не поддерживается и даже странно! ![]() |
|
------- Отправлено: 20:49, 19-03-2009 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата semiono:
или Вы про макрос @WorkingDir? тогда так: верно, FileSetTime("", "", 0+1+2, 1) - не проканает. думаю нет смысла 3 раза: FileSetAttrib(@ScriptDir,"-RASHNOT",1) FileSetAttrib(@ScriptDir,"-RASHNOT",1) FileSetAttrib(@ScriptDir,"-RASHNOT",1) если ооооооочень много файлов, того возможно сделать ручной поиск каждого файла, и при нахождении очередного сразу выставлять ему время открытия, создания, last доступа. |
|
------- Отправлено: 21:54, 19-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать #include <Array.au3> ;Папка аутоита $AutoItPath = StringRegExpReplace(@AutoItExe, '\\[^\\]+$', '') $DirsArray = DirListToArray($AutoItPath, 1) _ArrayDisplay($DirsArray) Func DirListToArray($sPath, $iWithFolder=0, $sRootPath=1) $sPath = StringRegExpReplace($sPath, '\\+$', '') Local $aRetArray[1], $aSubDirsArr, $sFindNextFile, $sCurrentPath Local $sFindFirstFile = FileFindFirstFile($sPath & "\*.*") If @error = 1 Then Return SetError(1, 0, -1) If $iWithFolder == 1 AND $sRootPath == 1 Then $aRetArray[0] += 1 ReDim $aRetArray[$aRetArray[0]+1] $aRetArray[$aRetArray[0]] = $sPath ;~ _Set_Attrib_And_Time($sPath) EndIf If $sRootPath = 1 Then ReDim $aRetArray[2] $aRetArray[1] = $sPath EndIf While 1 $sFindNextFile = FileFindNextFile($sFindFirstFile) If @error = 1 Then ExitLoop $sCurrentPath = $sPath & "\" & $sFindNextFile If StringInStr(FileGetAttrib($sCurrentPath), "D") Then If $iWithFolder == 1 Then $aRetArray[0] += 1 ReDim $aRetArray[$aRetArray[0]+1] $aRetArray[$aRetArray[0]] = $sCurrentPath ;~ _Set_Attrib_And_Time($sCurrentPath) EndIf $aSubDirsArr = DirListToArray($sCurrentPath, $iWithFolder, 0) If IsArray($aSubDirsArr) Then For $i = 1 To $aSubDirsArr[0] $aRetArray[0] += 1 ReDim $aRetArray[$aRetArray[0]+1] $aRetArray[$aRetArray[0]] = $aSubDirsArr[$i] Next EndIf Else $aRetArray[0] += 1 ReDim $aRetArray[$aRetArray[0]+1] $aRetArray[$aRetArray[0]] = $sCurrentPath ;~ _Set_Attrib_And_Time($sCurrentPath) EndIf WEnd FileClose($sFindFirstFile) Return $aRetArray EndFunc Func _Set_Attrib_And_Time($sPath) FileSetAttrib($sPath,"-RASHNOT",1) FileSetTime($sPath,"20010101000000",0,1) FileSetTime($sPath,"20010101000000",1,1) FileSetTime($sPath,"20010101000000",2,1) EndFunc применять на папку AutoIt (которая обрабатывается в этом примере) не рекомендуется. оригинал функции. |
------- Отправлено: 22:24, 19-03-2009 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
|