![]() |
проверка версии радмина
@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 зарание благодарю!!! |
var.txt Вы не привели. Я должен догадаться, что в нем?
Цитата:
Цитата:
Построение операторов сравнения нельзя произвольно менять, об этом написано в справке. Не меняйте без надобности месторасположение открывающих и закрывающих скобок, а также оператора Else. Это может сделать батник неработоспособным. Код:
@Echo Off Заключайте код батника в теги [code] - значок # на панели быстрого ответа. |
в var.txt находится всего лишь одна строка -> W32i APP ENU 2.2.0.0 shp c:\windows\system32\r_server.exe
которая идет как константа! значит теперь правильно? а файл со строкой формируется спомошью утилитки FileVer проверяет версию exe-шника! /F "tokens=*" %%i In можно подробнее эту строку разобрать? |
Mickle,
Цитата:
/F - ключ, определяет дейтвие по раскрытию, чтению и обработки заданного набора (в данном случае "c:\windows\var.txt"), т.е. файл раскрывается и читается. Далее, "tokens" - определяет номер подстроки из строки полученной при чтении файла, символ * указывает на запись всей полученной строки в переменную %%i. Обратите внимание, что параметры "skip" и "delims" в данном случае опущены. После получении переменной в процедуре исполнения DO идет отработка указанных команд. Маленькое замечание, переменную "b" лучше размещать в кавычках? т.к. её определение идет "ручным способом": Код:
Set b="W32i APP ENU 2.2.0.0 shp c:\windows\system32\r_server.exe" |
Спасибо большое!
|
For %%a In (*.txt) Do @Call :func %%a %%~ta
Подскажите пожалуйста описание вот этой строки, то что в ней происходит. для чего используется In () и %~ta |
DimankoR, обрабатываются все файлы с расширением *.txt из текущей директории. Имя файла (%%a) и дата/время его создания (%%~ta) передаются в процедуру :func в качестве первого и второго параметра соответственно.
Подробнее см. For /?. |
Время: 14:25. |
Время: 14:25.
© OSzone.net 2001-