Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185

Отпарсить Закомментированный текст из внешней Ф-ции скрипта

08.02.2023, 12:57. Показов 715. Ответов 7

Студворк — интернет-сервис помощи студентам
Доброго, всем ув.

Собственно есть одна из задач . которую не пойму как решить..
например:
есть 2 Файла.. 1-й Main.ps1 в котром указано вызов другой ф-ции из файла в каталоге.. \12345-Test.ps1

Содержимое... Файла 12345-Test.ps1
PowerShell
1
2
3
4
5
6
7
8
9
function 12345-Test{
@"
#config-version=TES-7.0.2-FW-build0366-345:opmode=0:vdom=0
#conf_file_ver=461616161
#buildno=0366
...
...Дальше Код и т.д.
"@
}
Запускаем Main.ps1... в коде которого Допустим..:

PowerShell
1
2
3
4
5
6
7
8
9
## Код основного скрипта 
 
. .\_test_\12345-Test.ps1 # Указываю что файл скрипта во вложенной папке
 
 
$Myfile = (12345-Test) -replace "(?m)^\s*`n", ''.trim()
$MyPath = ".\XXX_new.conf"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $Myfile, $Utf8NoBomEncoding)
Вопрос.::
Могу ли я Каким то образом. НЕ подгружая и перебирая весь текст в ф-ции 12345-Test

В коде основного Скрипта Main.ps1 забрать Значение из ф-ции 12345-Test
и записать его в переменную.
Данная строка всегда 1-я после @" .. и всегда со знаком #

#config-version=TES-7.0.2-FW-build0366-345:opmode=0:vdom=0

мне-бы вот это значение (TES-7.0.2-FW-build0366-345) каким то образом запарсить..
с ув. Спасибо за помощь...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2023, 12:57
Ответы с готовыми решениями:

Как отпарсить текст
Всем привет. Вообщем, есть одна проблемка, ребят, подскажите как отпарсить текст формата (Вместо звездочек, в номере телефона тоже...

Как отпарсить текст ответа из форума
Я в форуме пишу типа '<table><tr><td>timda</td></tr></table>' а у тебя ведь таблица та сайте не рисуется с Тимдой, а так и пишится, так...

Исполнение внешней программы/скрипта из триггера в mysql
Можно ли как то организовать?

7
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
08.02.2023, 13:23
1. Переименуйте функцию 12345-TEST, чтобы не было минуса

PowerShell
1
(12345_Test).Split("`n")[0].Split("=")[1]
1
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
08.02.2023, 14:14  [ТС]
Цитата Сообщение от lesser Посмотреть сообщение
(12345_Test).Split("`n")[0].Split("=")[1]
ого. нормас... Вопрос для скилап, При обращении через массив, как у вас Вычитка идет сверху и на указанной строке вычитка прекращается?
не загружая основной кусок из 12 000 строк ниже массива.. Я правильно понял...

PowerShell
1
Write-Host "$((12345_Test).Split("`n")[0].Split("=")[1])"
Согласно вашего кода , Вот такой результат...

TES-7.0.2-FW-build0366-345:opmode

Для корректировки Парсинга . и вічитки результата в таком виде TES-7.0.2-FW-build0366. мне нужно добавить дополнительный блок регулярок.. после Split("=")[1]) ?
0
 Аватар для volodin661
6674 / 2267 / 346
Регистрация: 10.12.2013
Сообщений: 7,836
08.02.2023, 15:38
12 000 - это не те деньги, о которых стоит беспокоиться.





читай построчно с помощью switch ( это удобно; см. докум ) и управляй с помощью break

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
switch ( $body ) {
 
   '@"'
   { $start=1 }
 
  '"@'
   { break  }
 
   default
   { if ($start ) { ... } }
 
}
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
08.02.2023, 15:57
Цитата Сообщение от magarjoba Посмотреть сообщение
результата в таком виде TES-7.0.2-FW-build0366
Невнимательно посмотрел:

PowerShell
1
((12345_Test).Split("`n")[0]  -split '[=:]')[1]
1
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
08.02.2023, 22:57  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
'@"'
   { $start=1 }
'"@'
   { break  }
Ни разу такой вид не использовал, если разберусь как работает ,то попробую...
... т.е. Я всегда использую switch ..
но в вашем варианте не понял что означает строка
'@"' { $start=1 } Аля начало вычитки с позиции 1-й после знака
'"@' { break } Конец ..
default - это ж вроде , все что не попало под первый и второй вариант , он считается типом default

--
Ладно как и сказал нужно понять как работает ваш вариант..
0
2 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 185
12.02.2023, 17:45  [ТС]
Цитата Сообщение от lesser Посмотреть сообщение
((12345_Test).Split("`n")[0]  -split '[=:]')[1]
Такой результат на выходе Получаю при обработке этого кода...
TES-7.0.2-FW-build0366-345

Спасибо, если не сложно, подскажите как подправить что-бы получить во первых
такой результат например: ,..
PowerShell
1
2
$TEST = (((12345_Test).Split("`n")[0]  -split '[=:]')[1])
                                            $TEST          TES-7.0.2-FW-build0366
КАК по итогу потом данные разбить на массив..?

т.е $TEST[0] =TES $TEST[1]=7.0.2 $TEST[2]=FW $TEST[3]=build0366

Если не сложно реализуемо ,буду признателен за помощь.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
12.02.2023, 22:46
magarjoba, а ваши вопросы соотносятся с темой в заглавии? Как к тому же можно спутать комментарий со строковым литералом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2023, 22:46
Помогаю со студенческими работами здесь

Запуск vba-скрипта из внешней среды в libreOffice
Вопрос такой, есть скрипт в отдельном файле в формате .bas. Так вот, мне нужно его запустить, но не из writer'a, а из допустим питона,...

Увидеть исходные текст скрипта, вызываемого из скрипта
Есть страница, элементы которой заполняются значениями JAVA скриптом из хидера страницы. Этот скрипт, в свою очередь, берет данные из...

Передача ф-ции как параметра другой ф-ции
struct pupil{ char surname; int school; int answer; int num; } tmp, a; int usl(int i, pupil a) { }

Узнать в ф-ции имя вызвавшей ф-ции
Это возможно? Т.е. есть некая ф-ция debug(msg), передавать имя вызвавшей ее процедуры в параметрах не вариант, можно ли как-то внутри это...

Закомментированный пример наследования.
Да, я понимаю что он берёт все свойства наследованного класса.Но я не понимаю что он именно наследует, что это за свойства?Приведите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru