Добавил вывод ИД диска, для наглядности принятия решения скриптом.
Код:
@echo off
CD /d %~dp0
((echo select disk 0 && echo detail disk) ^| diskpart.exe) | findstr /c:"ИД диска" & ((echo select disk 0 && echo detail disk) ^| diskpart.exe) | findstr /c:"{">nul
IF ERRORLEVEL 1 (
ECHO Загрузочный том размещён на MBR-диске
) ELSE (
ECHO Загрузочный том размещён на GPT-диске
)
pause
Взять к примеру "
тяжёлый случай", когда загрузчик на одном диске, а Windows на другом. Ведь для работы скрипта это не важно: Логический диск "с букавкай С:" может быть на диске 0,1, 2, 3, 4... . Пусть будет!
Тем не менее, место хранения Загрузчика ОС есть
Диск 0 всегда! В противном случае данная копия Windows "не загружабельна" без правки:
любого имеющегося на
Диске 0 загрузчика или BIOS, если загрузчика, на
Диске 0, нет.
Какой из SATA портов будет
Диском 0 определяет первая строка в "Boot Sequence" в BIOS.
Чтива полно на "железных" конференциях forum.oszone.net, ixbt.com.
m0nkrus, оптимизация хороша, пригодится и для других задач тоже!