|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] проверка версии радмина |
|
CMD/BAT - [решено] проверка версии радмина
|
Новый участник Сообщения: 33 |
Профиль | Отправить PM | Цитировать @Echo Off
Всем привет!!! Gora или кто-нибуть помогите пожалуйста!!! посмотрите пожалуйста правильно я написал! суть такая: если b=a т.е это проверка версии радмина тогда выход ни каких действий иначе идет копирование необходимых файлов и далее установка после чего выход??? Set b=W32i APP ENU 2.2.0.0 shp c:\windows\system32\r_server.exe For /F "tokens=*" %%i In (c:\windows\var.txt) Do ( Set a=%%i Rem Выход из цикла после чтения первой строки GoTo Next ) :Next If %a% EQU %b% (Echo Exit ) //если а=б тогда выход Else //иначе процесс установки (Echo copy "d:\t.exe" "c:\windows\system32\" copy "d:\settings.reg" "c:\windows\system32\" c:\windows\system32\t.exe /install /silence regedit.exe /s c:\windows\system32\settings.reg ) Pause>Nul Exit зарание благодарю!!! |
|
Отправлено: 08:52, 23-08-2010 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать var.txt Вы не привели. Я должен догадаться, что в нем?
Цитата Mickle:
Цитата Mickle:
Построение операторов сравнения нельзя произвольно менять, об этом написано в справке. Не меняйте без надобности месторасположение открывающих и закрывающих скобок, а также оператора Else. Это может сделать батник неработоспособным. @Echo Off Set b=W32i APP ENU 2.2.0.0 shp c:\windows\system32\r_server.exe For /F "tokens=*" %%i In (c:\windows\var.txt) Do ( Set a=%%i Rem Выход из цикла после чтения первой строки, если строк много. Если строка одна, то GoTo Next можно удалить GoTo Next ) :Next If Not "%a%"=="%b%" ( Rem если а не равно б тогда процесс установки copy /y "d:\t.exe" "c:\windows\system32\t.exe" copy /y "d:\settings.reg" "c:\windows\system32\settings.reg" c:\windows\system32\t.exe /install /silence regedit.exe /s c:\windows\system32\settings.reg ) Rem иначе выход Pause>Nul Exit Заключайте код батника в теги [code] - значок # на панели быстрого ответа. |
||
Отправлено: 08:56, 23-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать в var.txt находится всего лишь одна строка -> W32i APP ENU 2.2.0.0 shp c:\windows\system32\r_server.exe
которая идет как константа! значит теперь правильно? а файл со строкой формируется спомошью утилитки FileVer проверяет версию exe-шника! /F "tokens=*" %%i In можно подробнее эту строку разобрать? |
Последний раз редактировалось Mickle, 23-08-2010 в 11:27. Причина: не дополнил Отправлено: 11:20, 23-08-2010 | #3 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать Mickle,
Цитата gora:
/F - ключ, определяет дейтвие по раскрытию, чтению и обработки заданного набора (в данном случае "c:\windows\var.txt"), т.е. файл раскрывается и читается. Далее, "tokens" - определяет номер подстроки из строки полученной при чтении файла, символ * указывает на запись всей полученной строки в переменную %%i. Обратите внимание, что параметры "skip" и "delims" в данном случае опущены. После получении переменной в процедуре исполнения DO идет отработка указанных команд. Маленькое замечание, переменную "b" лучше размещать в кавычках? т.к. её определение идет "ручным способом": |
|
Последний раз редактировалось deepred, 23-08-2010 в 15:06. Отправлено: 14:34, 23-08-2010 | #4 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Спасибо большое!
|
|
Отправлено: 14:44, 23-08-2010 | #5 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать For %%a In (*.txt) Do @Call :func %%a %%~ta
Подскажите пожалуйста описание вот этой строки, то что в ней происходит. для чего используется In () и %~ta |
Отправлено: 16:08, 23-08-2010 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать DimankoR, обрабатываются все файлы с расширением *.txt из текущей директории. Имя файла (%%a) и дата/время его создания (%%~ta) передаются в процедуру :func в качестве первого и второго параметра соответственно.
Подробнее см. For /?. |
Отправлено: 16:17, 23-08-2010 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Релиз новой версии Chrome включит бета-версии для Linux и Mac OS | OSZone News | Новости информационных технологий | 6 | 29-05-2010 09:04 | |
Проверка | volkov99 | Тест-форум | 0 | 29-04-2010 16:07 | |
Проверка CD | Actor | Автоматическая установка Windows 2000/XP/2003 | 15 | 04-04-2009 13:27 | |
Redhat/Fedora - проверка hdd | slaine | Общий по Linux | 4 | 05-01-2008 23:54 | |
Проверка процессора. | DenDim | Непонятные проблемы с Железом | 11 | 21-03-2003 19:08 |
|