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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
DiskPart Advanced Script Console Автор: GeStart Live a.k.a GemoStarter
Системные требования: Windows XP или новее
DiskPart ASC - Программа, предназначенная для упрощения использования скриптов для программы DiskPart, встроенного в Windows консольного менеджера разделов. Использование ASC устраняет необходимость всякий раз перед использованием скрипта сверяться со списком имеющихся дисков и изменять скрипт, подставляя в него номера нужных дисков и разделов.
После запуска ASC будет выведен список всех доступных для работы физических дисков. После выбора диска будет выведена более детальная информация о нём, а так же список имеющихся на нём разделов. После выбора раздела будет отображена более детальная информация о нём.
Выбрав диск и, если нужно, раздел, можно будет выбрать один из заранее подготовленных скриптов в выпадающем списке. После нажатия кнопки "Run Script" ASC автоматически подставит номера диска и раздела в нужные места скрипта, и передаст его присутствующему в системе diskpart.exe.
ОСТОРОЖНО: В архиве с программой присутствуют два скрипта. Они удаляют с диска имеющуюся таблицу разделов (командой CLEAN), создают новую таблицу GPT или MBR (зависит от скрипта) и структуру разделов для установки Windows. Скрипты приложены, в основном, для демонстрации функционала, но полностью работоспособны, и при случайном запуске не на том диске обрекут вас на долгое и мучительное восстановление информации.

О скриптах:

Автоматическая подстановка номеров диска и раздела в скрипт достигается за счёт использования в скрипте переменных:
#ANTI# - Заглушка, предотвращающая случайный запуск скрипта без ASC, рекомендуется размещать первой строкой
#DISK# - Номер диска
#PART# - Номер раздела
#VOLU# - Номер тома, соответствующего #PART#
#PSTL# - Стиль разделов диска #DISK#
#GSEC# - Размер сектора #DISK# из информации о геометрии диска
#PSEC# - Размер физического сектора #DISK# (не все диски его сообщают)
#LSEC# - Размер логического сектора #DISK# (не все диски его сообщают)
#MNTP# - Точка монтирования раздела #PART# (без конечного "\")
#MNTPF№# - Свободная буква диска, это номер свободной буквы, если букв не хватит для всех номеров, скрипт не запустится
В скриптах поддерживаются простые вычисления. Выражение должно быть заключено в фигурные скобки,например:
{ 2 * 2 }
На место этого выражения будет подставлен его результат, то есть 4.
Вкладывать выражения друг в друга нельзя! Ошибки внутри выражений не проверяются, будьте внимательны.
Поддерживаются операторы:
^ - Возведение в степень
* - Умножение
/ - Деление
+ - Сложение
- - Вычитание
Не все йогурты одинаково полезны, и не все скрипты одинаково хорошо подходят для разных сценариев работы. К примеру, скрипт, написанный для MBR-дисков, будет непригоден для работы с GPT, и наоборот. Кроме того, некоторым скриптам достаточно выбрать только диск, другим же необходимо знать и раздел. Отсеять безусловно неподходящие скрипты поможет соблюдение шаблона именования:
DPMGRSEAU.AnyText
Собственно шаблоном здесь является DPMGRSEAU, то есть текст, располагающийся до первой точки. Всё, что находится после неё, игнорируется программой.
D - Для работы скрипту необходим номер диска
P - Необходим номер раздела
M - Поддерживается стиль разделов MBR
G - Поддерживается стиль разделов GPT
R - Поддерживаются RAW-диски (без таблицы разделов)
S - Поддерживаются диски со стандартным форматом сектора (512 байт как физически, так и логически)
E - Поддерживаются диски с форматом сектора 512e (4096 байт физически, 512 байт логически)
A - Поддерживаются диски с форматом сектора 4K (4096 байт как физически, так и логически)
U - Поддерживаются диски с неизвестным форматом сектора (любые другие комбинации, в том числе если диск не сообщает размер #PSEC# и #LSEC#)
Если скрипт может работать с любым стилем разделов и RAW, то можно не указывать стиль в шаблоне.
Если размер сектора не играет роли, в шаблоне нужно указать 0 либо не указывать чисел вовсе.
Если скрипт может работать без диска, раздела, вне зависимости от стиля разделов и размера сектора, шаблон можно оставить пустым. Можно и удалить шаблон вовсе, но во избежание неожиданного поведения лучше указать пустой. То есть .AnyText

Интерфейс:

1 - Список дисков
2 - Детальная информация о диске, выбранном в 1
3 - Список разделов на диске, выбранном в 1
4 - Детальная информация о разделе, выбранном в 3
5 - Список скриптов
6 - Запуск скрипта, выбранного в 5
7 - Запуск DiskPart без скрипта (для ручной работы)

Благодарности:

sergeysvirid, Adler, nikzzzz, vovan1982, Ander_73 и все, кого забыл упомянуть - за тестирование программы и ценные советы
Вложение

Версия 2.0



Последний раз редактировалось: Gemostarter (2019-07-24 17:04), всего редактировалось 8 раз(а)

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Исправленная версия. Пофикшено (должно быть, по крайней мере) определение расширенного раздела в MBR.
vovan1982, Проверь, плиз, ещё раз тот диск, на котором был "фантомный" раздел.
Ещё переписано определение модели и добавлено определение типа шины подключения и вшитого в диск серийного номера. Серийник бывает порой некорректен, с этим ничего не поделаешь, а вот остальное должно определяться точно.


Последний раз редактировалось: Gemostarter (2019-07-09 13:21), всего редактировалось 1 раз

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

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
Gemostarter, теперь все правильно отображает.

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
ССЫЛКА НЕДЕЙСТВИТЕЛЬНА
Новая версия. Добавлено определение физического размера сектора (в поле информации о диске, в строке "Sector", в квадратных скобках после буквы "P"). Также изменена схема именования скриптов.
Если у кого-то есть харды с секторами Advanced Format, проверьте корректность определения, пожалуйста.


Последний раз редактировалось: Gemostarter (2019-07-10 15:17), всего редактировалось 1 раз

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter, aa
68476Если у кого-то есть харды с секторами Advanced Format, проверьте корректность определения, пожалуйста.
Вроде определяет.

К стати, Partition Count считает пустые разделы, может их исключить?

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

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3810
  • Репутация:127

    [+] [-]
Gemostarter, да

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz, aa Можно и исключить, дело нехитрое. Сейчас там значение берётся прямо из поля PartitionCount в DRIVE_LAYOUT_INFORMATION_EX, а оно указывает на кол-во элементов в массиве, а не реальных разделов. На MBR-диске в этом поле всегда минимум 4, плюс ещё по 4 на каждый логический раздел (которые внутри Extended). На GPT вроде соответствует кол-ву реальных разделов.
Думаю, можно прикрутить в это место ту же логику, что отсеивает лишнее в списке разделов слева внизу. Один вопрос: Extended partition считать или нет? По мне, так лучше нет...
Ander_73, Ура ab

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter
А что такое
Size(10) :

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz,
Size(10) - Это размер в нормальных десятичных Кило/Мега/Гигабайтах (множитель - 1000). В них считают ёмкость дисков вендоры, и именно в этой системе она указывается в спеках диска и на его корпусе. В проге введено для удобства идентификации.
Просто Size - Это размер в двоичных Киби/Меби/Гибибайтах (множитель - 1024), которые в Микрософте (и много где ещё) называют Кило/Мега/Гигабайтами, порождая путаницу в умах.

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Gemostarter
68483Киби/Меби/Гибибайтах (множитель - 1024)
Это точно, путаницы много.
Но можно просто конкретно указать величину, есть же стандарт
кибибайт - KiB
мебибайт - MiB
гибибайт - GiB
тебибайт - TiB
Удобно и понятно, хотя, например кибибайт по русски звучит немного смешно. ag

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
nikzzzz, С одной стороны да, с другой - сабж ведь вспомогательный для diskpart, не хотелось бы противоречить его терминам.

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

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
Gemostarter,
Очень нравиться графический интерфейс. Подробное инфо дает. Простите мою глупость, только я не очень понимаю для чего можно конкретно изпользовать. Вот например со скриптами, можно добавить скрипты и какое то описание.
В смысле практически как и для чего можно пользоваться программой? aa

_________________
Подпись отключена за нарушение правил форума

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
dimo70, Как это "для чего"? Для всего того же, для чего народ использует diskpart. В архиве есть пара скриптов, оба удаляют все разделы и создают новые для установки винды. Только один скрипт делает MBR, другой - GPT. Для примера, по-моему, самое то.

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

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
Gemostarter, в принципе, как я понимаю, можно наваять скрипт создания и монтирования VHD?

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

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
Gemostarter,
Да, тут насколько понимаю интересны скрипты. aa

_________________
Подпись отключена за нарушение правил форума

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

    Gemostarter
  • 15956
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 323
  • Репутация:35

    [+] [-]
vovan1982, Хм... Можно, только букву диска придётся задавать в скрипте жёстко, что снизит универсальность.
Возможное решение - запилить новую переменную, скажем, #MNTP#, указывающую на первую из точек монтирования выбранного раздела. Заодно добавить проверку, чтобы отказывать в исполнении скрипта, если раздел никуда не смонтирован.

Страница 4 из 7


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

Текущее время: 21-Ноя 14:52

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


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