Создание переменной среды, соответствующей букве установочного диска

OSzone.net » Microsoft » Автоматическая установка » Автоматическая установка Windows Vista и новее » Создание переменной среды, соответствующей букве установочного диска
Автор: Вадим Стеркин
Иcточник: www.oszone.net
Опубликована: 16.01.2009

Команда

Работая над автоматической установкой Windows Vista, вы, наверное, не раз столкнетесь с необходимостью запускать исполняемые файлы (EXE, CMD и т. п.) непосредственно с установочного диска. Это может вам понадобится для установки приложений, импорта твиков реестра, выполнения командных файлов и так далее. Для того чтобы запустить исполняемый файл с DVD-диска, необходимо знать букву диска во время установки операционной системы. Далеко не всегда она известна заранее, но существует способ, позволяющий определить ее в процессе установки.

Вкратце этот способ работает следующим образом. В корне диска размещается маркерный файл, а на одном из проходов установки выполняется команда, осуществляющая поиск этого файла в корне всех дисков. Букве диска, на котором находится файл, присваивается переменная среды. Аналогичный способ использовался и при установке Windows XP, однако в Windows Vista он слегка отличается. Давайте рассмотрим его подробнее.

Предполагается, что вы скопировали содержимое установочного DVD Windows Vista в папку на жестком диске. В корне этой папки (на одном уровне с файлом setup.exe) создайте пустой текстовый файл DiskRoot.txt - это и есть маркерный файл.

Установка приложений

Теперь, в файл ответов нужно добавить команду, которая будет искать маркерный файл. Откройте файл ответов в WSIM. Затем из меню Вставка выберите раздел Синхронная команда, а в нем - пункт Проход 4 specialize.

Установка приложений

В открывшемся окне введите следующую команду:

cmd /c "FOR %i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %i:\DiskRoot.txt SETX DiskRoot %i: -m"

Установка приложений

Эта команда осуществляет поиск файла DiskRoot.txt на всех дисках во время четвертого прохода (4 specialize). После обнаружения файла создается системная переменная %DiskRoot%, значением которой является буква диска, на котором размещен файл. За создание переменной отвечает утилита командной строки SETX, входящая в состав Windows Vista.

Примечание. Если ваша система оборудована кардридером, приведенная выше команда может завершаться ошибкой. Альтернативные варианты команд вы найдете в этой теме форума.


Ссылка: http://www.oszone.net/8602/DiskRoot_Variable