|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты |
|
[Архив - Часть 1.3] AutoIt скрипты
|
Старожил Сообщения: 250 |
Профиль | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе 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 |
Пользователь Сообщения: 134
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 19:12, 27-01-2007 | #171 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Модератор Сообщения: 4918
|
Профиль | Сайт | Отправить PM | Цитировать borzoy
Я отправил вам оповещение, что ваша тема [autoit] Fraps и Punpad Shell4, с просьбой помочь создать скрипт, перенесена в созданную вами же тему Помогите с тихой установкой Fraps и Runpad Shell, в которой уже начато обсуждение. Зачем создавать одинаковые темы? ОПК - пункт 2.1 (Тема переименована в [autoit] Fraps и Runpad Shell, ни один пост не удалён) |
------- Не было печали, апдейтов накачали.
Последний раз редактировалось jameszero, 29-01-2007 в 09:44. Отправлено: 00:39, 28-01-2007 | #172 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать В AutoIt'е плохо (а точнее не корректно) работает функция FileDelete - например если написать её так:
То в папке @TempDir будут удалены все файлы (не папки), т.е если я укажу файл для удаления в виде переменной, и каким то образом эта переменная окажется пуста (""), то может произойти нежеланная катастрофа - будьте очень остарожны, я на днях попал на эту удочку (правда к счастью у меня был бекап уалившихся файлов). |
------- Отправлено: 18:44, 29-01-2007 | #173 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Думаю всё же, такой способ надёжней в плане безопасности, чем мучаться и придумывать разные хитрости, пытаясь исправить баг AutoIt'а. Dim $fso ;~ Создание объекта $fso = ObjCreate("scripting.filesystemobject") ;~ Удаление файла Func DeleteFile($FileSpec) If $fso.FileExists($FileSpec) Then $fso.DeleteFile($FileSpec, True) EndIf EndFunc ;~ Удаление папки Func DeleteFolder($FolderSpec) If $fso.FolderExists($FolderSpec) Then $fso.DeleteFolder($FolderSpec, True) EndIf EndFunc |
|
Отправлено: 06:28, 30-01-2007 | #174 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Да, это неплохой способ, спасибо, возьмём его пожалуй в арсенал функции аутоита Я что-то не нашёл функции, которая проверяла бы данное число на чётность/не чётность, и решил её сам сделать (понадобилась сея функция), но не уверен что это правильное решение, может уже есть подобная функция, или у кого то есть более универсальное предложение? $iNumber = 2075674 If _IsEven($iNumber) Then MsgBox(64, "Even check", "The given number <" & $iNumber & "> is an Even number") Else MsgBox(64, "Even check", "The given number <" & $iNumber & "> is not an Even number (it is Odd)") EndIf Func _IsEven($NumString) If $NumString < 1 Then $NumStrArr = StringSplit($NumString, ".") If IsArray($NumStrArr) And $NumStrArr[0] > 1 Then $NumString = $NumStrArr[2] EndIf If IsFloat($NumString / 2) Then Return 0 Else Return 1 EndIf EndFunc И ещё, заметил вроде ещё багу в аутоите, проверить очень просто: Получаем 1e-005 - и это так должно быть? я понимаю что можно заключить в кавычки, и тогда будет отображать дословно, но просто интересно, почему это происходит? |
------- Отправлено: 06:38, 04-02-2007 | #175 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Привет, на самом деле все гораздо проще: ...хотя твои манипуляции с точкой наводят на мысль что обычной четности тебе мало (имеет смысл только для целых чисел). Цитата:
Для однозначного представления используй StringFormat: |
|
Последний раз редактировалось amel27, 04-02-2007 в 09:22. Отправлено: 07:18, 04-02-2007 | #176 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:29, 04-02-2007 | #177 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Подскажите, как с помощью WinApi поменять частоту обновления экрана?
В интернете есть множество примеров с использованием библиотеки: user32.dll функция: ChangeDisplaySettingsA, но как реализовать это в AutoIt совершенно не представляю. Очень надо!!! |
Отправлено: 20:34, 04-02-2007 | #178 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Цитата:
Цитата:
Такой вопрос: Как послать обычное нажатие клавишы Windows (с изображением окон)? нужно отдельно в експлорере вызвать контекстное меню, и единственны способ который мне пришел в голову, так это нажать эту клавишу... Пробую так: Ничего не происходит, в полукруглые скобки заключать пробовал, тоже никакого эффекта, есть идеи? Или, как можно обновить окно експлорера, но не посыланием F5, а именно полноценным обновлением (в некоторых случаях F5 не помагает). |
|||
Последний раз редактировалось Creat0R, 05-02-2007 в 01:20. Отправлено: 00:51, 05-02-2007 | #179 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Ещё способ удаления файла:
Func _FileDelete($Path, $FileName) If StringLen($FileName) >= 1 Then FileDelete($Path & "\" & $FileName) EndFunc $FileName = @ScriptDir & "\test.txt" $FileCharCount = _FileCountChar($FileName, 0) If $FileCharCount <> -1 Then MsgBox(64, "File Characters Count", "In the file <" & $FileName & "> was found [" & $FileCharCount & "] characters (including Carriage Returns and Line Feeds)") Else MsgBox(16, "Error!", "The file <" & $FileName & "> was not found") EndIf Func _FileCountChar($FileName, $Flag=0) If Not FileExists($FileName) Then Return -1 Local $CharsCount = 0 $fRead = FileRead($FileName, FileGetSize($FileName)) $fReadArr = StringSplit($fRead, "") If IsArray($fReadArr) Then For $i = 1 To $fReadArr[0] If ($Flag = 1 And $fReadArr[$i] <> @CR And $fReadArr[$i] <> @LF) Or ($Flag = 2 And $fReadArr[$i] <> @CR) Or ($Flag = 3 And $fReadArr[$i] <> @LF) Or $Flag = 0 Then $CharsCount += 1 Next Return $CharsCount EndIf EndFunc Если поставить последний параметр как 1 ($Flag=1), то подсчёт не будет учитывать возврат каретки и перевод строки (@CRLF), если поставить параметр на 2, то будут учитываться все символы кроме @CR, ну а если поставит параметр $Flag = 3, то будут учитываться все символы за исключением символа перевода строки (@LF). |
------- Отправлено: 04:32, 06-02-2007 | #180 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|