Учебник по автоматической установке Windows XP


Команда SET


Вы можете задать в командном файле свои переменные при помощи все той же команды SET.

Чтобы добавить переменную, введите в командной строке:

set имя_переменной=значение

Чтобы отобразить переменную, введите в командной строке:

set имя_переменной

Чтобы удалить переменную, введите в командной строке:

set имя_переменной=

Например,

SET mydir=D:\Files\Work

задает переменную mydir, которая будет возвращать путь к указанной папке. Подробнее о команде вы можете прочитать из set /?.

Важное примечание: переменные, задаваемые командой set, действуют лишь на протяжении , в которой они были заданы.

Эти переменные могут быть созданы, к примеру, для любых путей, надо лишь задать или найти алгоритм присвоения переменной в каждой частной ситуации, пользуясь готовыми примерами или создавая свои на их основе. Как правило, такие переменные создаются в текущей сессии командными файлами с помощью некоторых операторов.

Пример назначения переменных в файле RunOnceEx.cmd, импортирующем ключи в реестр

@echo off

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

SET i=100


REG ADD %KEY% /V TITLE /D "Installing Applications" /f


REG ADD %KEY%\%i% /VE /D "WinRar 3.51" /f

REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f

REG ADD %KEY%\%i% /V 2 /D "REGEDIT /S %systemdrive%\install\Software\rar_set.reg /s" /f

SET /A i+=1

В данном скрипте командой SET задаются две переменных - %i% и %KEY%. Обратите внимание, что задаются они без символов процентов, а вот для обращения к ним %% уже нужны. Переменная %KEY% служит для упрощения и оптимизации кода. Она остается неизменной на протяжении текущей командной сессии, что избавляет от необходимости каждый раз включать в код ветку реестра. Каждый раз когда в коде встречается %KEY% будет происходить ее замена на HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx. А вот %i% служит для последовательной нумерации разделов реестра. При начальном значении 100 переменная увеличивается на единицу при помощи команды SET /A i+=1 после каждого блока команд, что дает последовательность 100, 101, 102 и т.д. Таким образом, строка




Начало  Назад  Вперед