Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Вопросы По WPI
Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
mode con: cols=20 lines=4
Установить размер консоли в 20 символов шириной и 4 символа высотой. Правда, зачем оно здесь — вовсе не ясно. В дальнейшем коде нигде не видно, чтобы сие изменение где-то использовалось.

Код: Выделить весь код
for /f "delims=: tokens=1" %%i in ("%~dp0") do set drive=%%i:
Разбить содержимое избавленной от кавычек («%~dp0») переменной окружения «%0» — имя текущего исполняемого пакетного файла, расширенного до диска («%~dp0») и пути («%~dp0») к файлу, по разделителю «:» («delims=:») на части, извлечь из полученного разбиения первую часть («tokens=1») в переменную «%%i». Присвоить переменной окружения «drive» значение переменной «%%i».

В итоге, в переменной окружения «drive» должно оказаться имя диска с двоеточием, на котором содержится текущий исполняемый пакетный файл.

читать дальше »
В принципе, для этого было бы достаточно простого:
Код: Выделить весь код
set drive=%~d0


Код: Выделить весь код
set wpipath=%drive%\wpi
Переменной окружения «wpipath» присваивается имя диска, на котором содержится текущий исполняемый пакетный файл, + константа «wpi».

Код: Выделить весь код
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY%\WPI /V 1 /D "%wpipath%\WPI.exe" /f
В реестр, для однократного исполнения («HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx»), добавляется команда вида: «Имя диска, на котором содержится текущий исполняемый пакетный файл» + путь «wpi» + «имя файла WPI.exe».

В общем и целом, приведённый Вами пакетный файл можно свести к одной-единственной строке в пакетном файле :
Код: Выделить весь код
@ 1>nul 2>&1 reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\WPI" /v 1 /d "%~d0\WPI\WPI.exe" /f
NB! Разумеется, сие справедливо, если в пакетном файле ничего другого, кроме изложенного Вами, не было.

Цитата Freddy1984:
Что не понятно: Непонятно во-первых куда закидывать готовый WPI? В корень установочной винды? »
Судя по приведённому Вами пакетному файлу — да.

Цитата Freddy1984:
Во-вторых "%wpipath%\WPI.exe" /f за что отвечает? »
«/f» — это параметр не «WPI.exe», а параметр команды «reg.exe add»:
Цитата:
/f Принудительно перезаписывать существующие записи реестра без предупреждения.
Цитата Freddy1984:
То что он запускает WPA это понятно, а путь от куда запускает? »
См. изложенное мною выше описание приведённого Вами пакетного файла. Повторюсь:
Цитата:
«Имя диска, на котором содержится текущий исполняемый пакетный файл» + путь «wpi» + «имя файла WPI.exe»
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:10, 23-03-2012 | #1959

Название темы: Вопросы По WPI