Цитата Iska:
А у Вас что получается при такой замене и на таком коде? »
|
У меня при такой замене НА МОЕМ КОДЕ получается "Загрузочный том размещен на GPT-разделе". НА ВАШЕМ - то же самое, что и у вас - MBR. Как я уже говорил, переменная sDisk передает инфу только о последнем физическом диске в списке. Большинство людей подключают диск, предназначенный под систему, к порту с наименьшим номером. Ни вы, ни я не исключение. Посему на выдаче sDisk мы получаем не системный диск, а тот, который скорее всего используется под файлопомойку. Как результат, ключ "Boot Загрузоч" на нем не находится и скрипт считает, что системный диск размещен на разделе другого формата.
Цитата Iska:
Моя идея (реализацию которой я приводил выше на WSH и PoSH) — «танцевать вперёд», а не «пятится назад»: определить, какой раздел системный, получить его букву, по разделу получить содержащий его диск, и только потом смотреть, каков этот диск — MBR или GPT. »
|
Объясню, почему я отдаю предпочтение CMD перед PowerShell: с языком CMD я достаточно знаком, чтобы понять, разобрать, найти ошибки и оптимизировать скрипт, в то время как с языком PowerShell я не знаком абсолютно. Вот вы (не в обиду) раз за разом наступаете на одни и те же грабли с переменной в CMD вместо массива - это я могу просечь и пресечь. А если вы мне предложите скрипт на WSH или PoSH с аналогичной или любой другой ошибкой, то я ее уже не смогу распознать! К тому же, я не знаю, корректно ли отработает ваш скрипт, запущенный из SetupComplete.cmd. Недавно, к примеру, столкнулся с тем, что скрипт, помещенный в аналогичный установочный файл oobe.cmd не воспринимает путь "%~dp0" - пришлось городить сложную конструкцию, чтобы определить путь запуска... И как вы себе представляете, что я буду вылавливать подобные проблемы без знания языка и не имея GPT-раздела под рукой? В остальном, согласен, что «танцевать вперёд» - более предпочтительный метод, на реализацию которого, по логике, должно затрачиваться куда меньше ресурсов.