[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Как изменить загрузочные файлы Windows 7,
чтобы системы грузились из одной папки.
(Как это делал я, возможны варианты.)

Вдаваться в тонкости не буду. Но для "понимания и осознания" надо знать, как грузится Windows 7 в чистом виде (как задумывали умные дядьки).
1. Сначала загружается файл Bootmgr (находится в корне диска, хотя может быть расположен где угодно).
2. Bootmgr загружает файл BCD (находится в папке "boot", без дополнительных телодвижений не может быть перемещен).
3. BCD загружает файл boot.wim (находится в папке "sources", без дополнительных телодвижений не может быть перемещен).
4. boot.wim загружает файл install.wim (находится в папке "sources", без дополнительных телодвижений не может быть перемещен).
Задача:
1. Изменить Bootmgr (чтобы он искал файл BCD не в папке boot, а в другой нужной нам).
2. Изменить BCD (чтобы искал файл boot.wim не в папке sources, а в другой).
Для сборок Windows РЕ этого достаточно. Для Windows 7 надо изменить boot.wim.
3. Изменить boot.wim (чтобы искал install.wim не в папке sources).
Что нужно:
1. Рекомпилятор для изменения Bootmgr >> или архив BOOTMGR_Recompiler_Extractor.zip (самораспаковывающийся), прикрепленный к статье.
В архиве:
Папки "x64"; "x32" и скрипт запуска RecMGR.cmd, который запускает рекомпилятор нужной разрядности (зависит от разрядности системы, под которой файл запущен).
Папка "Bootmgr.exe" - в ней файлы Bootmgr.exe для разных систем Windows (7; 8; 8.1).
Выдернуто из сборки VasAlex, за что ему Огромное спасибо.
2. Программа Visual BCD Editor >> или портативную версию от SunOK >>
Для изменения BCD можно использовать и другие программы, с которыми вам удобнее работать.
3. Набор для изменения boot.wim >> архив Boot.wim_edit.rar, прикрепленный к статье.
В архиве: Папка "mu", в ней папка "imagex" и файлы "Mod.cmd", "mysetup.cmd", "winpeshl.ini". Что, зачем, и почему, будет описано ниже.
Вложение

editing Boot.wim

Вложение

BOOTMGR Recompiler

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
ИЗМЕНЯЕМ Bootmgr:

Читать

Запускаем какую-нибудь сборку Windows 7 РЕ, или Windows 7 х64 (я использую WinSeven x64 Special Edition 2k10 (Russian) от Conty-9). ВАЖНО использовать именно х64 систему. Под другой не заработало.
Запускаем под сборкой какой-нибудь HEX-редактор. Открываем в нем файл Bootmgr.exe (который лежит в папке которую скачали).
В файле Bootmgr.exe надо изменить имя папки pass на свое. Я буду делать для папки с именем 7х64.
Имя папки надо изменить в 4-х местах.
В НЕХ-редакторе в левом столбике с цифрами ищем:
00000650F0
0000065140
0000065210
0000067430
Напротив цифр справа ищем вот это: \.p.a.s.s. и меняем на свое (в моем случае \.7.x.6.4).

Ни в коем случае НЕ МЕНЯТЬ БОЛЬШЕ 4-х СИМВОЛОВ! НЕ МЕНЯТЬ БОЛЬШЕ НИЧЕГО!
Когда все сделали, сохраняем изменения.
Идем в папку с рекомпилятором и запускаем файл BOOTMGR_Recompiler_x64.exe

Жмем кнопку "open BOOTMGR" и указываем путь к файлу Bootmgr.exe
Программа ругнется чего-то - жмем "ОК".

После этого будет предложено сохранить модифицированный Bootmgr (я сохраняю с именем папки "boot7x64")
Имя файла может быть любым и лежать он может где угодно.
Для изготовления файла для другой папки, повторяем вышеописанные действия.
Изменяем BCD

Читать

Устанавливаем программу Visual BCD Editor, она создаст ярлык на рабочем столе.
Запускаем ее. Программа подхватит ваш BCD (который лежит на диске С), он нам не нужен.
Качаем заготовки >>
В папке две заготовки: BC1 - с одной загрузочной записью и BC2 - на две загрузочные записи. Не забудьте переименовать в BCD.
Нужный вам файл открываем программой Visual BCD Editor. Работа с программой интуитивно понятна. Ниже картинки, чтобы совсем понять:




Программа делает изменения сразу, то есть жать кнопку "сохранить" не надо.
Если убираем в папку сборку какую-нибудь, то этих действий достаточно.
Создаем в корне папку "имя папки".
Копируем туда наш "boot..." и переделанный файл BCD.
Из любой сборки или Windows 7, из папки "boot" копируем в нашу папку "имя папки" файл "boot.sdi" ОБЯЗАТЕЛЬНО! Извлекаем файл boot.wim из сборки в папку "имя папки".
Все. Прописываем в menu.lst запуск файла "boot...".

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Изменяем файл boot.wim

Читать

1. Из архива Boot.wim_edit.rar извлекаем папку со всем содержимым в корень диска С:
Открываем папку. В ней заходим в папку "imagex", дальше открываем папку с разрядностью установленной у вас системы. И запускаем файл Install.cmd.

Этими действиями мы установили в систему инструмент для работы с WIM - ImageX. Нужный для монтирования и пересборки WIM файлов.
2. В папке "mu" находим файл "mysetup.cmd" и открываем его для редактирования (жмем правой кнопкой мыши, выбираем "изменить").
Находим строчку: SET DD=7r86 (вторая строка с верху) и меняем 7r86 на имя папки, в которой будет лежать install.wim. Сохраняем изменения в файле.

3. В папку "mu" извлекаем из образа с Windows 7 файл boot.wim (находится в папке "sources").
4. Запускаем командную строку с правами администратора (жмем кнопку пуск, в строке поиска вводим CMD, запускаем программу с правами администратора).
В командной строке вводим команду cd C:\mu и жмем Enter (Переходим на диск С: в папку "mu").
Далее вводим команду Mod.cmd и жмем Enter (запускаем на исполнение файл Mod.cmd):

После того как скрипт отработает, закрываем окно командной строки. В папке "mu" лежит модифицированный файл boot.wim, который будет искать файл Install.wim в нужной вам папке.
Что делает скрипт Mod.cmd:
Добавляет в файл boot.wim файлы mysetup.cmd и winpeshl.ini. Файл mysetup.cmd рассказывает системе где искать install.wim. А winpeshl.ini запускает файл mysetup.cmd.
ВАЖНО! В папке с install.wim обязательно должны быть ВСЕ файлы из папки "sources" оригинального дистрибутива.
Написано по мотивам статьи >> , помощи conty9 и форумчан. За что им Огромное СПАСИБО!

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Использование файла mysetup.cmd
С помощью файла mysetup.cmd можно производить установку Windows 7 не только из папки, находящейся в корне носителя, но и из под папки.

Читать

Допустим, в корне носителя лежит папка "PUH1". В ней модифицированные файлы Bootmgr; BCD; boot.wim; boot.sdi, а содержимое папки "sources" и файл install.wim - в папке "win7x64", находящейся в папке "PUH1", лежащей в корне носителя.
В скрипт mysetup.cmd надо добавить еще одну переменную с именем папки "win7x64".
Скрипт будет выглядеть так:
@echo off
SET DD=puh1
SET MM=win7x64
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%I:\%DD%\%MM%\install.wim set DVDdrive=%%I:
If NOT "%DVDDrive%"=="" echo Found Install.wim at %DVDdrive%\%DD%\%MM%\install.wim
IF "%DVDdrive%"=="" (
echo ERROR - COULD NOT FIND INSTALL.WIM in %DD%\%MM% folder!
pause
pause
goto :EOF
)
if exist %DVDdrive%\%DD%\%MM%\unattend.xml SET UN=/unattend:%DVDdrive%\%DD%\%MM%\unattend.xml
if exist %DVDdrive%\%DD%\%MM%\OEM\nul SET OEM=/m:%DVDdrive%\%DD%\%MM%\OEM
REM look for whole sources folder copied over
If exist %DVDdrive%\%DD%\%MM%\setup.exe  (
%DVDdrive%
REM setup will use its path to find the install.wim
%DVDdrive%\%DD%\%MM%\setup.exe %OEM% %UN%
goto :RBT
)
if not exist X:\Setup.exe goto :BAD
REM if not then just call setup in root of boot.wim
X:\setup.exe /installfrom:%DVDdrive%\%DD%\%MM%\install.wim  %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find X:\Setup.exe !
@echo Press a key to reboot now...
pause
:RBT
wpeutil reboot
pause
ГДЕ :
SET DD=puh1 - имя папки в корне диска.
SET MM=win7x64 - имя подпапки.
Вот так выглядит папка из корня моей флешки:

В папке: 4 Win РЕ (они же загрузчики).
Установка Win 7х64; Win 7х86; Win 8
Переименованные mysetup.cmd для запуска установки той или иной системы под любым Win РЕ 7&8.

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Добавлена инструкция для изменения файлов Windows 8. Спасибо FILTH; SunOK; Conty9.
Процедура "перепоселения" Восьмёрки почти не отличается от Семерки:
1. Раздобыть Bootmgr.exe. Можно в дистрибутиве Windows 8 по адресу sources\Boot.wim\Windows\Boot\PXE\Bootmgr.exe.
2. Надо изменить имя папки Boot на свое, также четырехсимвольное, в 4-х местах. В НЕХ-редакторе ищем смещения:
0х00083400 - B.O.O.T
0х00083450 - B.O.O.T./.B.C.D
0х000846C0 - B.O.O.T
0х00087FE0 - B.O.O.T
Попутно можно переименовать BCD (0х00083468).
3. Воссоздать Bootmgr. Запустить файл BOOTMGR_Recompiler_x64.exe из папки х64 набора рекомпилера; убедиться, что выбраны галочки "MScompression" и "Xpress_Huff"; выбрать новоиспеченный Bootmgr.exe; согласиться на обновление контрольных сумм РЕ; сохранить под желаемым именем загрузчик "Bootmgr".
4. Правильно настроить BCD. (И тут начинаются танцы с бубном). Смотрим прикрепленный файл (желательно в VisualBCD или в чем-то помощнее )

Ключевые особенности

Параметр Disable IntegrityChecks=True (он же NoIntegrityChecks /yes ) дублируется в двух объектах - Windows Boot Manager ({bootmgr}) и конкретном пункте запуска (в примере это Win8x64 Installation).
Указать где искать boot.sdi: DeviceOptions - SdiPath = \Sx64\boot.sdi .

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Для Windows 8.1
1. Раздобыть Bootmgr.exe. Можно в дистрибутиве Windows 8.1 по адресу sources\Boot.wim\Windows\Boot\PXE\Bootmgr.exe.
2. Надо изменить имя папки Boot на свое, также четырехсимвольное, в 4-х местах. В НЕХ-редакторе ищем смещения:
000008AF30 - \BOOT
000008AF80 - \BOOT\BCD
000008C1F0 - \BOOT
000008C980 - \BOOT
000008CCD0 - \BOOT
000008D290 - \BOOT\FONT
Вроде работает.
Ближайшее время статью полностью обновлю...

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
BOOTMGR_Recompiler
Набор для изменения файла BOOTMGR.
Выдернуто из сборки VasAlex.
Сам рекомпилятор и папка с файлами BOOTMGR.exe для Windows 7 / 8 / 8.1
Работает под Windows. Запуск через файл RecMGR.cmd, запустится программа в зависимости от разрядности системы.
Скачать

[Цитировать]

    Гость
  • Стаж: 54 года
  • Репутация:

    [+] [-]
Описание, конечно хорошее, сам по нему учился... Есть замечания!
Даете такие рекомендации:
Для Windows 8.1
000008AF30 - \BOOT
000008AF80 - \BOOT\BCD
000008C1F0 - \BOOT
000008C980 - \BOOT
000008CCD0 - \BOOT
000008D290 - \BOOT\FONT
Для другой, другие ....
То есть выйдет новая Bootmgr и нам надо ждать пока вы соизволите выложить значения...
А на самом деле все проще!!!
По имени \.B.o.o.t HEX редактор не хочет искать, а вот по HEX значению все ищет!!!
Редактируется в HEX-редакторе не запакованная версия: bootmgr.exe
Искать надо значение: 5C0042006F006F0074 и справо, в редакторе
вылазиет путь: \.B.o.o.t -- его и меняем на свой (пример: \.S.S.T.R)
Такая инструкция намного проще для понимания и универсальна для всех BOOTMGR.exe
Еще имеется утилита, которая, почти все делает сама: Mole`s_Bootmgr_Changer
Для того чтобы при загрузки с диска появилась надпись: Press any key нужно править загрузочный сектор...
(UltraISO|Самозагрузка|Сохранить файл загрузки..)
правим в Hex редакторе:

Меняем загрузчик в образе
(UltraISO|Самозагрузка|Загрузить файл загрузки..)
Про файл BCD!!!
Я правлю в программе BOOTICE
Надо в основной записи, а так же в пунктах загрузки Windows и WinPE
добавить записи:
Путь к папке Font с шрифтами, иначе русского языка не будет и при загрузки Windows 7 экран загрузки будет как у Vista (полоска прогресса)
Нужно отключить проверку цифровых подписей, иначе вылетит с ошибкой. Disable IntegrityChecks=True

Прописать нужно только в глобальные настройки.
Про Gub, Xorboot костыли...
Загрузчик BOOTMGR, не умеет загружать образы дисков, дискет
Что бы появилась эта возможность, надо использовать сторонний загрузчик
Что представляет из себя "костыль" Это файл, например GRLDR с измененным именем (имя может быть любым)
и "вшитом" файле конфигурации (настройки) редактируется в программе BOOTICE
Костыль Xorboot имеет маленький размер, но не всегда срабатывает...
В новой версии Xorboot 073, вроде как устранили все недостатки.
Правится и создается файл в утилите от автора
Так же можно править вид загрузочного меню BOOTMGR, но это уже другая история....

Инструкцию сделал коряво, ну я думаю что информация будет полезной.
Если сделаете ОФФ Лайн справку, цены ей не будет.


Последний раз редактировалось: (2014-12-20 02:56), всего редактировалось 4 раз(а)

[Цитировать]

    Гость
  • Стаж: 54 года
  • Репутация:

    [+] [-]

Справка от conty9

Итак, небольшой мануальчик: как создать загрузчик для Windows 7/8/8.1 под своё
уникальное имя папки.
Сразу уточню, что загрузчик зависит только от версии ОС и один для обеих
разрядностей (х86/х64). 7-ный загрузчик лучше подходит для старых ПК, но на
некоторых машинах может не загружать 8х86 (и при этом без проблем грузит 8х64!).
8-й загрузчик загружает весь ряд ОС NT6.x... но, увы, тоже есть один отзыв о
проблемах в загрузке на древнем ПК (у меня пока такие ПК не попадались).
В идеале, конечно, лучше загружать каждую ОС своим загрузчиком, но, увы, это не
всегда рационально.
Итак, для создания своего загрузчика нам понадобится неупакованный загрузчик
bootmgr.exe. Его можно без проблем извлечь из РЕ-установщика винды, он есть там
по пути Windows\Boot\PXE\bootmgr.exe. В "чистом" виде неупакованный загрузчик не
используется (поэтому в репаках часто отсутствует - ищите в оригинальных
дистрибутивах). Править готовый (упакованный) загрузчик практически невозможно,
поскольку всё находится в упакованной части загрузчика. В папке "Заготовки"
есть оригинальные загрузчики 7-ки bootmgr(7).exe и 8-ки bootmgr(7).exe, а также
модифицированный под сборку 2k10 загрузчик (8-ный) bootmgr(8 for 2k10).exe... и
россыпь монозагрузчиков bootmgr.ХХХ.
Вначале, для понимания, схема загрузки ОС класса Vista/7/8x: загружается bootmgr
(если его загружать грубом, может находиться в любой папке!), вызывает своё меню
(в оригинальном загрузчике указан путь Boot\BCD). Из меню загружается boot.sdi
(путь к нему указан в BCD, т.е., его можно изменить). Также из BCD загружается
непосредственно само ядро (может находиться по любому пути). Это очень упрощённая
схема загрузки, касающаяся только путей к минимальным загрузочным файлам:
bootmgr->Boot\BCD->Boot\boot.sdi->Sources\boot.wim
Итак, задача: перенести все файлы в папку 2k10 (делал для своей сборки). Вначале
понадобится подправить все пути в bootmgr.exe. Именно его правим НЕХ-редактором,
указывая нужный путь вместо папки Boot (\Boot) для поиска меню BCD (4 символа)
и новое имя (в оригинале - \Boot\BCD, т.е., 4+3 символа) для файла меню. Также
рекомендуется подправить путь к папке со шрифтами (\Boot\Fonts) и название
самого шрифта wgl4_boot.ttf рекомендуется сократить до boot.ttf (тогда не будет
проблем при загрузке из CDFS-компактов). Кроме того, можно полностью переделать
вид меню загрузки: для этого с помощью любого менеджера ресурсов (например,
Restorator) извлекаем из bootmgr.exe BOOTMGR.XSL, правим его и заменяем. Для
сборки 2k10, например, было изменёно оглавление и расширен отображаемый без
прокрутки список от 6 до 14 пунктов (за счёт уплотнения всего остального). Там
же (в BOOTMGR.XSL) можно изменить надпись, отображаемую при загрузке ("Windows
is loading files..." - для 7-ки, или "Loading files..." - для 8ки)... и даже её
положение на экране (слева/справа/посредине). На всякий случай рекомендуется
добиться того же размера BOOTMGR.XSL, что и оригинал (не думаю, что это важно,
но всё же!). Поскольку все эти операции не предназначены для рядовового
пользователя, детали правки я упущу - кому нужно, сам разберётся. Для сравнения,
что нужно править, можно использовать подготовленный для 2k10 вариант в папке
"Заготовки": файлы bootmgr(8.1sp1 for 2k10).exe и оригинал bootmgr(8).exe,
искать по "2k10". Также можно посмотреть монозаготовки bootmgr.ХХХ (в них правка
минимальна, предназначены для загрузки своего меню из одного пункта).
В монозаготовках, кроме прочих изменений также сделано ещё одно: существенно
изменён путь к меню BCD. Для удобства применения (чтобы в корневой папке не
"отсвечивал" десяток меню) загрузчики пропатчены для использования меню из папки
2k10\Fonts. При этом имя меню - BCD с расширением, соответствуюшим расширению
заготовки Bootmgr.xxx. Для того, чтобы увеличить длину пути в меню BCD,
из загрузчика выброшены прописки шрифтов для Japan/China, и на освободившееся
место "прописан" длинный путь к BCD. Также изменены обращения к пути вызова BCD
на новые (в загрузчике встречаются 4 раза). Таким образом, все меню монозагруз-
чиков теперь должны находиться в 2k10\Fonts. Напомню, что сами монозагрузчики
могут быть в любой папке, при желании их тоже можно забросить в 2k10\Fonts и
вызывать оттуда (чтобы не перегружать папку 2k10\WinPE).
После полной правки нам нужно из bootmgr.exe получить полноценный (упакованный)
загрузчик. В этом нам поможет скрипт BOOTMGR_Recompiler. Имеется 2 версии: для
работы под х86 ОС/РЕ, и для х64. Уточню: нужно запускать версию скрипта,
соответствующую по разрядности работающей ОС/РЕ. Для какой разрядности РЕ будет
создаваться загрузчик - неважно. Напомню, загрузчики для х86 и х64 идентичны,
различаются только их версии (Vista/7/8) и редакции (например, для 8-ки это
6.2.9200.16384, но возможны и новее). Итак, запускаем BOOTMGR_Recompiler,
выбираем настройку упаковки (она различается для загрузчиков 7 и 8). Для 7-ного
бутменеджера нужно выбрать LZNT1 и снять птичку с XPressHuff, для 8-ного -
оставить по-умолчанию (Use XPressHuff). После этого открываем правленный
bootmgr.exe, соглашаемся на исправление контрольной суммы (если НЕХ-редактор
этого не сделал сам) и... получаем готовый загрузчик bootmgr_mod, который будет
искать BCD (или как вы там его обозвали!) в нужной папке.
Второй этап - создание и правка BCD. Проще всего использовать функцию BootICE
для редактирования меню BCD. Замечу, что BootICE устанавливает некоторые пути
по-умолчанию: Boot\boot.sdi и Boot\memtest.exe. Возможно, придётся их сменить.
Также можно использовать BcdEdit - очень удобный GUI для bcdedit.exe, работает
даже под ОС и в РЕ-сборках на базе ХР. В новом меню рекомендуется также указать
путь к шрифтам в нужной папке:
bcdedit /store "Путь\BCD" /set {идентификатор} FontPath \2k10\Fonts
и отключить проверку самого загрузчика:
bcdedit /store "Путь\BCD" /set {идентификатор} nointegritychecks YES
Таким образом, в меню BCD нужно прописать под новую папку такие параметры:
путь к boot.sdi и memtest.exe (если используется), путь к шрифту... и отключить
проверку целостности загрузчика (поскольку он модифицирован). Естественно, имя
для ядра сборки и путь к нему тоже указываем. :)
За примерами мономеню идём в 2k10: там есть полноценное меню BCD и мономеню ХХХ.
Также в 2k10\WinPE есть скомпилированные из заготовок варианты загрузчиков,
имена идентичны.
================================================================================
Результат привязки к 2k10: bootmgr находится по любому пути (загружается грубом),
в папке 2k10 есть BCD, memtest.exe, папка fonts и ядро boot.wim. Папки boot и
sources игнорируются. Для отображения анимации при загрузке (7-й стиль) также
придётся править winload.exe (Windows\System32\boot), чтобы он использовал шрифт
boot.ttf из нового пути (к примеру, 2k10\fonts\boot.ttf) - без этого изменения
используется загрузочный экран в стиле Vista. Проще всего подправить в НЕХ-
редакторе путь, исправить контрольную сумму (я использую для этого тот же
BOOTMGR Recompiler), и перепаковать ядро. Если не нужна анимация - можно удалить
2k10\fonts\boot.ttf
Справка плюс BOOTMGR.exe разных версий. Скачать


Последний раз редактировалось: (2014-12-14 19:05), всего редактировалось 2 раз(а)

[Цитировать]

    zxen
  • 32
  • Стаж: 10 лет
  • Сообщений: 263
  • Репутация:21

    [+] [-]
  • Откуда: Siberia
Всем привет, если интересует, могу набросать отдельную програмку - патчер для bootmgr, ибо пара существующих очень уж неудобна + эти упражнения с hex редакторами... Вернее GUI версию, для консольной bmzip+корректор контрольной суммы. В таком виде: ввел путь и имя к BCD, нажал на кнопку и получил готовый загрузчик, туда же можно собственно засунуть и простенький редактор BCD, такого же плана.


Последний раз редактировалось: zxen (2014-12-12 20:43), всего редактировалось 1 раз

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
zxen, Приветствую!
Ну наконец то появился, мы без тебя скучали...
По поводу программ: не только мы, много народу будут тебе благодарны.
Я, конечно, при очень большом желании могу сам попробовать, но в каком виде это у меня получится и сколько уйдет на это времени... Каждый должен делать свое, один полы ровнять, другой программы писать.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
puhpol, по поводу "выдернуто из сборки VasAlex"... уточню, что VasAlex не является первоисточником, он просто позаимствовал для своей сборки мои наработки из 2k10 (причём порой довольно криво - "хвосты" от 2k10 торчат во многих местах).
Ещё одно замечание - по поводу скрипта поиска. В том виде, в каком его обычно используют, например:
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%I:\%DD%\%MM%\install.wim set DVDdrive=%%I:
выражение if exist может вызывать окно системной ошибки (с ожиданием), если поиск производится на поврежденных разделах или "пустых" буковках картридера. Лучше заменить такой конструкцией:
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
dir /d %%I:\%DD%\%MM%\install.wim&&set DVDdrive=%%I:
dir /d %%I:\%DD%\%MM%\install.esd&&set DVDdrive=%%I:
)
Различие в том, что проверка организована с помощью dir /d, которая при любой ошибке даст сообщение в комстроке, и не вызывает системное окно с сообщением.

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
conty9, Доброго времени!
Я исправлюсь, просто выдернул именно из той сборки.
К тому же, я ничего не понимаю в написании скриптов. Опять же, когда смотрю на написанный кем то, тогда местами понимаю, что он делает. Сам скрипт написать не способен. Конечно, пытаюсь учится, но времени катастрофически не хватает. Так как работа моя никак не связана с техникой, у меня на работе: бери больше - кидай дальше...
ОГРОМНОЕ спасибо за ваши подсказки и правки. Статью собирался переписывать, учту все поправки и исправления.

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
conty9, Хотел у вас спросить:
Например, при использовании этого скрипта под вашей сборкой или какой другой, скрипт отрабатывает только при наличии всего содержимого папки "sources" в папке с install.wim. Это понятно, так как в вашей сборке нет индекса 2, соответственно, нет setup.exe и установочных файлов. Вопрос вот в чем:
При запуске скрипта под сборкой, насколько понимаю, проверяется наличие диска в дисководе. И выводится окошко о том, что его там нет. Как сделать, чтобы это окошко не вылазило?

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
puhpol, не совсем тебя понял (если не против, давай на "ты") по поводу использования скрипта под 2k10.
Приведённый мною вариант (замена if exist на dir /d) как раз и призван исключить появление окон при отсутствии диска в дисководе.

Страница 1 из 19


Показать сообщения:    

Текущее время: 12-Дек 21:31

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы