Мы столько наплодили, что по предыдущему Вашему сообщению:
Цитата m0nkrus:
У меня при такой замене НА МОЕМ КОДЕ »
|
мне было не совсем ясно, о каком коде именно идёт речь. Теперь понятно.
Цитата m0nkrus:
…работает без привязки к тому, каким по счету идет системный GPT-раздел. А вот предложенный вами алгоритм может сработать только либо в случае наличия всего одного GPT-раздела, либо если система при наличии нескольких таких разделов, находится на последнем в очереди GPT-диске. »
|
Принимается.
Цитата m0nkrus:
Вас уже куда-то не туда заносит, вам не кажется? Уже какие-то наезды непонятные пошли. Если вы не в состоянии понять, почему вариант с массивом работает, а с переменной нет, или почему я не хочу использовать PowerShell-скрипт при наличии альтернативы в виде CMD-скрипта, то это не повод на меня наскакивать. »
|
Вам почудилось. Не обижайтесь и не воспринимайте сие в таком ракурсе. Подобного не было. Мне просто тоже было интересно разобраться. Разобрался (см. ниже).
Ваш код у меня не работал. И при использовании «обратки» (смена «\*$» на «\ $») — тоже (кстати, и мой, сделанный по Вашему коду, в этой части — тоже не работал). Суть оказалась в том,
читать дальше »
что «diskpart.exe», идущий в комплекте с Windows XP, делает при перенаправлении вывод строк в формате Unix — не «CtLf», а только «Lf». «findstr.exe», идущий в комплекте с той же ОС, сопоставляет что параметр «/e», что символ «$» в регулярке «/r /c:"$"» только с «CrLf», но не сопоставляет с «Lf». Посему, при использовании параметра или «$», под Windows XP «findstr.exe» находит в выводе «diskpart.exe» одну b исключительно одну подходящую строку — завершающую:
Код:
DISKPART>
да и то лишь потому, что в конце её и вовсе нет никаких символов конца строки.