Код:
mode con: cols=20 lines=4
Установить размер консоли в 20 символов шириной и 4 символа высотой. Правда, зачем оно здесь — вовсе не ясно. В дальнейшем коде нигде не видно, чтобы сие изменение где-то использовалось.
Код:
for /f "delims=: tokens=1" %%i in ("%~dp0") do set drive=%%i:
Разбить содержимое избавленной от кавычек («%
~dp0») переменной окружения «%0» — имя текущего исполняемого пакетного файла, расширенного до диска («%~
dp0») и пути («%~d
p0») к файлу, по разделителю «:» («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»
|