Я пытаюсь получить определенную строку чисел (числа меняются по длине при каждой перезагрузке) из тега скрипта на веб-сайте. Тем не менее, я изо всех сил пытаюсь выяснить, как это сделать, поскольку я застрял в PowerShell v2 и не могу обновить его выше.
Мне удалось получить полный сценарий, получив элемент, загрузив сайт в IE и получив элемент по имени тега «script», и я попытался использовать некоторое регулярное выражение, чтобы найти строку, но не могу понять это вне.
Я также попытался удалить символы с передней и задней части сценария, и тогда я понял, что длины чисел меняются каждый раз.
Часть сценария:
var value = document.wizform.selActivities.options[document.wizform.selActivities.selectedIndex].value;
if (value == "Terminate") {
if (confirm("Are you sure you want to terminate the selected business process(es)?")) {
document.wizform.action = "./Page?next=page.actionrpt&action=terminate&pos=0&1006999619";
javascript:document.wizform.submit();
}
} else if (value == "TerminateAndRestart") {
if (confirm("Are you sure you want to terminate and restart the selected business process(es)?")) {
document.wizform.action = "./Page?next=page.actionrpt&action=terminateandrestart&pos=0&237893352";
javascript:document.wizform.submit();
}
}
Часть, которую я хочу запечатлеть, это числа здесь
document.wizform.action = "./Page?next=page.actionrpt&action=terminateandrestart&pos=0&237893352";
Код PowerShell, который у меня есть,
$checkbox = $ie.Document.getElementsByTagName("script") | Where-Object {
$_.outerHTML -like "*./Page?next=page.actionrpt&action=terminate*"
} # | select -Expand outerHTML
$content = $checkbox
$matches = [regex]::Matches($content, '".\action=terminate\.([^"]+)')
$matches | ForEach-Object {
$_.Groups[1].Value
}
Мне бы хотелось, чтобы в PowerShell было только число в качестве переменной, поэтому в приведенном выше примере я хотел бы иметь возможность либо 0&237893352
, либо просто 237893352
(поскольку примечание не меняется, поэтому я могу добавить 0&
обратно, если понадобится).