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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Закрытая тема
Настройки темы
[Архив - Часть 1.3] AutoIt скрипты

Старожил


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

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


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.

Помогите пожалуйста. Нужен маленький скриптик для решения некоторых рутинных задачь.
Вот что нужно сделать последовательно:

1) в папке DIR1 находим и удаляем файлы в названии которых присутствует text_1
2) в папке DIR2 находим xxx.sif и удаляем строки, в которых присутствует text_1
3) в папке DIR3 находим xxx.inf и добавляем в его секцию [XXX] несколько строчкек (text_2, text_3, ..., text_n)
4) в папке DIR4 находим yyy.inf ищем в его секции [YYY] text_4 и заменяем его на text_5
5) сохраняем все изменения и выводим отчёт о проделанной работе :-)

Заранее благодарен.

Отправлено: 05:05, 03-12-2006

 

Аватара для Creat0R

Must AutoIt


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

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


Переделал немного функцию для удаления файлов из подкаталогов, чтобы она ещё возвращала значения...
если все файлы были найдены, то возвращается сообщение о том что всё прошло успешно, если какого-то файла не удалось удалить, то возвращается список тех файлов которых не удалось удалить - если каталоги небыли найдены, или сам путь не сущестсвует, то также возвращается сообщение об ошибке.

P.S.

Хотелось бы узнать, как можно построить функцию так, чтобы возвращалось значение в массиве (через _ArrayAdd полагаю), я пробовал сделать, но у меня почему то возвращается только первое значение (из $Results[1]) - если кто-то может показать как правильно строить массив на примере с этой функцией (для удаления), то буду очень признателен.

Код: Выделить весь код
$Results = _DeleteFileInFolders($FileName, $Path)

MsgBox(64, "Results", "Results of deleting:" & @CR & $Results)

Func _DeleteFileInFolders($FileName, $Path)
    Local $ErrDelList
    If Not FileExists($Path) Then Return "The destination folder <" & $Path & "> was not found"
    $ErrDelete1 = FileDelete($Path & "\" & $FileName)
    $DirsList = _DirListToArray($Path)
    If IsArray($DirsList) Then
        If $DirsList[0] = 0 And $ErrDelete1 = 0 Then Return "There is no file <" & $FileName & "> in the destination folders, and  in there is no folders in the destination path <" & $Path & ">"
        For $i = 1 to $DirsList[0]
            $ErrDelete2 = FileDelete($DirsList[$i] & "\" & $FileName)
            If $ErrDelete2 = 0 And FileExists($DirsList[$i] & "\" & $FileName) Then
                If $ErrDelete1 = 0 And FileExists($Path & "\" & $FileName) And StringInStr($ErrDelList, $Path & "\" & $FileName) = 0 Then $ErrDelList = $ErrDelList & @CR & "Can not delete the file <" & $Path & "\" & $FileName & ">"
                $ErrDelList = $ErrDelList & @CR & "Can not delete the file <" & $DirsList[$i] & "\" & $FileName & ">"
            ElseIf $ErrDelete2 = 0 And Not FileExists($DirsList[$i] & "\" & $FileName) Then
                If $ErrDelete1 = 0 And Not FileExists($Path & "\" & $FileName) And StringInStr($ErrDelList, $Path & "\" & $FileName) = 0 Then $ErrDelList = $ErrDelList & @CR & "File <" & $Path & "\" & $FileName & "> not found"
                $ErrDelList = $ErrDelList & @CR & "File <" & $DirsList[$i] & "\" & $FileName & "> not found"
            EndIf
        Next
        If $ErrDelList <> "" Then
            Return $ErrDelList
        ElseIf $ErrDelete1 = 0 Then
            Return "There is no file <" & $FileName & "> in the destination path <" & $Path & ">"
        Else
            Return "All files in the destination folder (and in his subfolders) was secceseful deleted!"
        EndIf
    Else
        Return ""
    EndIf
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


Отправлено: 02:50, 19-12-2006 | #61



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

Sla8ak


Сообщения: n/a

Профиль | Цитировать


Доброго времени суток!

Интересует следующее - можно ли при помощи AutoIt скрипта сделать следуюющее.
Пользователь входит в систему, появляэтся переменная окружения %USERNAME%=zzz_aaa, где zzz - группа пользователя, aaa - инициалы пользователя.
Нужно получить только группу пользователя, и ввести в систему новую переменную set USERGROUP=zzz.
Вопрос каким образом можно взять из имени пользоваетля только группу.

Спасибо.
З.Ы. Имя пользователя находится в актив директори.

Отправлено: 16:45, 19-12-2006 | #62


Аватара для Creat0R

Must AutoIt


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

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


Sla8ak
Цитата:
каким образом можно взять из имени пользоваетля только группу
Нужно разделить значение переменной по разделителю _, и взять первое значение из массива - а прописать новую переменную, думаю можно через EnvSet()...


Код: Выделить весь код
$SplitUserName = StringSplit(@UserName, "_")

If IsArray($SplitUserName) Then
    $UserGroup = $SplitUserName[1]
Else
    $UserGroup = @UserName
EndIf

EnvSet("USERGROUP", $UserGroup)
EnvUpdate()

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

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

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


Отправлено: 17:56, 19-12-2006 | #63


Пользователь


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

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


С помощью какой команды можно переименовывать файлы!!? Например wgatray.exe в wgatray.exe.old.

Отправлено: 20:30, 20-12-2006 | #64


Аватара для Creat0R

Must AutoIt


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

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


sattva
Цитата:
С помощью какой команды можно переименовывать файлы!!?
Как таковой, команды для переименования нет. Но для этой цели используется команда перемещения файла (FileMove()) в том же каталоге...

Код: Выделить весь код
FileMove("wgatray.exe", "wgatray.exe.old")

-----------------------------------------
У меня есть такой вопрос:

-Возможно ли в GUI, построить реальную ссылку, на которую можно было бы нажать, и она открывалась в браузере (желательно чтобы был выбор с каким браузером запускать)?

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

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

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


Отправлено: 13:41, 21-12-2006 | #65

Sla8ak


Сообщения: n/a

Профиль | Цитировать


Доброго времени суток.

Интересует следуюющий вопрос: каким образом при помощи AutoIt-скрипта можно перенаправить (переназначить) папку "Мои документы" в другое место, например на сетевой ресурс.

Заранее спасибо.

Отправлено: 13:37, 22-12-2006 | #66


Пользователь


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

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


Vadikan

Как конвертировать в код AutoIt v3 вот такой CMD скрипт?
Будь добр, приведи код готового скрипта.
Код: Выделить весь код
FOR %%I IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%I:\PROG.EXE SET path=%%I:\;%path%
reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_SZ /d %path% /f
reg add "HKCU\Environment" /v Path /t REG_SZ /d %path% /f

Последний раз редактировалось Sanja Alone, 02-01-2007 в 01:52. Причина: Добавление тэга code


Отправлено: 17:38, 23-12-2006 | #67


Аватара для Creat0R

Must AutoIt


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

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


Sla8ak
Цитата:
каким образом при помощи AutoIt-скрипта можно перенаправить (переназначить) папку "Мои документы" в другое место
Можно через реестер...

Код: Выделить весь код
$NewMyDocsPath = "C:\MyDocs"
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths", @UserName, "REG_SZ", $NewMyDocsPath)
Djons
Цитата:
Как конвертировать в код AutoIt v3 вот такой CMD скрипт?
Конвертировать, как мне самому недавно выяснилось (тут я тоже задавал подобный ворос), нет возможности, но можно написать что-то подобное...

Код: Выделить весь код
$AllDrivesVar = DriveGetDrive("all")

For $i = 1 to $AllDrivesVar[0]
    If $AllDrivesVar[$i] <> "a:" And $AllDrivesVar[$i] <> "b:" And FileExists($AllDrivesVar[$i] & "\PROG.EXE") Then EnvSet("PATH", $AllDrivesVar[$i] & "\;" & EnvGet("PATH"))
Next
Если PROG.EXE будет существовать в нескольких дисках, то и эти диски будут добавлены в переменную PATH.

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

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

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


Отправлено: 22:54, 23-12-2006 | #68


Аватара для bes1de

Старожил


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

Профиль | Цитировать


есть скрипт autoit_KIS.exe .для запуска нужен еще и AutoIt3.exe ? или скрипт сам по себе?

-------
http://forum.oszone.net/images/smilies/userbars/oszone_ub.gif

Ушел на базу ... вернусь не сразу !


Отправлено: 23:06, 23-12-2006 | #69


Аватара для Creat0R

Must AutoIt


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

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


bes1de
Цитата:
.для запуска нужен еще и AutoIt3.exe ? или скрипт сам по себе?
Закомпелированный скрипт не нуждается ни в каких компонентах со стороны AutoIT.

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

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

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


Отправлено: 00:02, 24-12-2006 | #70



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход