[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION: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 и все, кого забыл упомянуть - за тестирование программы и ценные советы
Attachments

Версия 2.0



Last edited by Gemostarter on 2019-07-24 17:04; edited 8 times in total

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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


Last edited by Gemostarter on 2019-07-09 13:21; edited 1 time in total

[Quote]

    vovan1982
  • 214
  • Longevity: 9 years 10 months
  • Posts: 1131
  • REPUTATION:77

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

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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


Last edited by Gemostarter on 2019-07-10 15:17; edited 1 time in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years 10 months
  • Posts: 3114
  • REPUTATION:127

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

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

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3827
  • REPUTATION:127

    [+] [-]
Gemostarter, да

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years 10 months
  • Posts: 3114
  • REPUTATION:127

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

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years 10 months
  • Posts: 3114
  • REPUTATION:127

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

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years
  • Posts: 3783
  • REPUTATION:27

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

_________________
Signed off for violation of forum rules

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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

[Quote]

    vovan1982
  • 214
  • Longevity: 9 years 10 months
  • Posts: 1131
  • REPUTATION:77

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

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years
  • Posts: 3783
  • REPUTATION:27

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

_________________
Signed off for violation of forum rules

[Quote]

    Gemostarter
  • 15956
  • Longevity: 7 years 8 months
  • Posts: 323
  • REPUTATION:35

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

Page 4 of 7


Display posts:    

Current time is: 01-Dec 22:32

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum