|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Версия WinVer.exe и создание переменной |
|
[решено] Версия WinVer.exe и создание переменной
|
Пользователь Сообщения: 76 |
Профиль | Отправить PM | Цитировать Всем привет
нужна небольшая помощь профи в языке AutoIT3, а именно: скрипт, который читает версию файла WinVer.exe по такому пути: %OFFLINESYSTEM%\System32\winver.exe и создает локальную (пользовательскую) переменную %OFFLINESYSTEMVER%, опустив версию Bild'a, то есть только номер 6.0/6.1/6.2/6.3 может кто нибудь помочь?. |
|
Отправлено: 20:46, 04-07-2014 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата KopBuH91:
|
|
Отправлено: 13:26, 05-07-2014 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 76
|
Профиль | Отправить PM | Цитировать семейство NT6, то есть от Vista и выше.
а так - под 90% случаев этот вариант подходит - ведь 2 системы на одном HDD - редкость. к тому же, если нужен конкретный выбор - у нас есть переменная, в которой содержится буква нужного диска. а нет выбора (/auto) - пусть будет первая попавшаяся, по порядке букв, начиная с C:, исключая X:. |
Отправлено: 14:22, 05-07-2014 | #12 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать KopBuH91,
Попробуйте сделать примерно так. Global $sPath, $sVers If $CmdLine[0] Then If StringRegExp($CmdLineRaw, '(?<=^|\x{20})([''"]{0,1}/auto[''"]{0,1})(?=\x{20}|$)') Then _FindFirstWinDir($sPath) ;~ или, как вариант: ;~ If Not _FindFirstWinDir($sPath) Then Exit MsgBox(16, 'Error', 'Не нашли ни одного диска с папкой Windows') EndIf EndIf If Not $sPath Then $sPath = EnvGet('OFFLINESYSTEM');или OFFLINESYSTEMDRIVE? If Not $sPath Then Exit MsgBox(16, 'Error', 'Нет переменной %OFFLINESYSTEM%');или OFFLINESYSTEMDRIVE? EndIf $sVers = FileGetVersion($sPath & '\System32\winver.exe') $sVers = StringRegExpReplace($sVers, '^(\d+\.\d+).*', '$1') If @extended <> 1 Then Exit MsgBox(16, 'Error', 'Ошибка получения версии winver.exe') If EnvGet('OFFLINESYSTEMVER') = $sVers Then Exit MsgBox(64, 'Info', 'Переменная OFFLINESYSTEMVER со значением ' & $sVers & ' уже есть') If Not RegWrite('HKEY_CURRENT_USER\Environment', 'OFFLINESYSTEMVER', 'REG_SZ', $sVers) Then Exit MsgBox(16, 'Error', 'Ошибка записи переменной OFFLINESYSTEMVER в реестр') EndIf Func _FindFirstWinDir(ByRef $s_Path) Local $s_Drive For $i = 67 To 90 If $i = 88 Then ContinueLoop $s_Drive = Chr($i) If FileExists($s_Drive & ':\Windows\') Then $s_Path = $s_Drive & ':\Windows' Return 1 EndIf Next Return 0 EndFunc ;==>_FindFirstWinDir ;~ Run('"' & @ScriptDir & '\test.exe" /auto') |
Последний раз редактировалось madmasles, 06-07-2014 в 08:33. Отправлено: 06:58, 06-07-2014 | #13 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. | NiOl | Скриптовые языки администрирования Windows | 7 | 31-01-2019 19:58 | |
PowerShell - [решено] Создание переменной (коллекции) с несколькими значениями | rudimko | Скриптовые языки администрирования Windows | 5 | 16-01-2014 15:08 | |
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль unknown, версия 0.0.0.0, адреc.. | Arlekin_s | Microsoft Windows NT/2000/2003 | 18 | 21-06-2010 15:15 | |
[статья] Создание переменной среды, соответствующей букве установочного диска | Vadikan | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 0 | 17-01-2009 18:21 | |
Ошибка приложения svchost.exe, версия 0.0.0.0, модуль unknown, версия 0.0.0.0 | romantika | Лечение систем от вредоносных программ | 1 | 29-11-2008 15:51 |
|