|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Установщик обновлений, поиск файлов по двум маскам |
|
Установщик обновлений, поиск файлов по двум маскам
|
Старожил Сообщения: 348 |
Профиль | Отправить PM | Цитировать
Здравствуйте. Друзья, помогите решить проблему с поиском файлов по нескольким маскам.
Суть проблемы: написал я скрипт (сильно не ругайте т.к. я новичок в мире AutoIT), который устанавливает обновления в формате msu для Вындавс 7. И всё бы ничего, да только захотелось мне сделать его "универсальным" т.е. добавить возможность установки обновлений из *.cab архивов. И тут возник вопрос, а как сделать поиск по двум маскам FileFindFirstFile может искать только по одной, так по крайней мере написано в справке.... и тут работа стала. Как я себе представлял установку обновлений в виде *.cab: While $search_msu = 1 $msu = FileFindNextFile ($search_msu) If @error Then ExitLoop $iPrecent += 5 $counter += 1 ProgressSet ($iPrecent, $counter & "/" & $iFiles & " - " & $msu) Select Case $msu = "*.cab" RunWait (@SystemDir & "\PkgMgr.exe /ip /m:" & $msu & " /quiet /norestart") Case $msu = "*.msu" RunWait (@SystemDir & "\wusa.exe " & $msu & " /quiet /norestart") EndSelect If $iPrecent = 100 Then $iPrecent = 0 EndIf WEnd |
|
Отправлено: 01:03, 02-10-2010 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать #include <File.au3> #include <Array.au3> Global Const $CAB = "cab" Global Const $MSU = "msu" Global $aFile[1] $FileList = _FileListToArray(@ScriptDir) If (Not IsArray($FileList)) And (@Error = 1) Then Exit For $i = 1 To $FileList[0] Switch StringRight($FileList[$i], 3) Case $CAB _ArrayAdd($aFile, StringRegExpReplace($FileList[$i], "^.*\\", "")) Case $MSU _ArrayAdd($aFile, StringRegExpReplace($FileList[$i], "^.*\\", "")) EndSwitch Next If UBound($aFile, 1) = 1 Then MsgBox(0, Default, "Нет файлов!") Exit Else _ArrayDisplay($aFile,"$FileList") EndIf |
Отправлено: 01:58, 02-10-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 348
|
Профиль | Отправить PM | Цитировать Цитата FlatX007:
Сделал только "по-своему" без массивов (ну не нравятся они мне), работает ништяк. СПАСИБО ВАМ ОГРОМНОЕ! |
|
Отправлено: 02:21, 02-10-2010 | #3 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать зря с массивами удобнее. я а тут придумывал пример , знал бы отделался StringRight ...
|
Отправлено: 02:38, 02-10-2010 | #4 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать FlatX007,
По-моему, в Вашем коде ...StringRegExpReplace($FileList[$i], "^.*\\", "")... - лишнее. _FileListToArray() возвращает массив имен файлов, без пути. |
|
Отправлено: 10:03, 02-10-2010 | #5 |
Старожил Сообщения: 348
|
Профиль | Отправить PM | Цитировать Уже второй день моск ломаю со своим "установщиком", помогите пожалуйста.
Допустим имеем простейшую команду запуска: $Command = ('PkgMgr.exe' & ' /ip /m:' & @ScriptDir & '\x64\Windows6.1-KB969168-x64.cab' & ' /norestart') RunWait ($Command) MsgBox (64, "проверка значения", $Command) Через MsgBox пробил команду целиком: Самое интересное заключается в том, что если ту команду кинуть в "Пуск - Выполнить" то всё отлично работает а в скрипте никак. |
Отправлено: 01:20, 03-10-2010 | #6 |
Старожил Сообщения: 348
|
Профиль | Отправить PM | Цитировать Проблема была в перенаправлении папок в х64 системе. Разобрался сам.
|
Отправлено: 03:35, 03-10-2010 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[статья] Поиск и загрузка обновлений | Vadikan | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 18 | 05-03-2014 11:52 | |
Разное - Поиск критических обновлений для португальской XP Home | alfonso | Наборы обновлений для Windows XP/2003/Windows 7 | 6 | 19-03-2008 15:51 | |
[решено] Поиск обновлений - загрузка процессора 100% | Ser6720 | Microsoft Windows 2000/XP | 14 | 08-06-2007 19:02 | |
Программа для создания обновлений файлов | XCodeR | Программное обеспечение Windows | 12 | 26-06-2006 13:29 | |
Поиск файлов по тексту. | Belansky | Общий по Linux | 12 | 04-06-2003 06:17 |
|