Ручка 4 Для петель сразу? - PullRequest
0 голосов
/ 21 декабря 2018

Введение в вопрос

Я пытаюсь найти следующие значения: '02-08-1997' и '01-08-1997' в строке $b1.Чтобы найти это значение, я использовал поиск начального и конечного индекса значений вокруг него.

Как я это сделал?

Для этого я использовал 4 цикла For, только для выполненияодно и то же снова и снова.Я знаю, что это можно сделать гораздо проще;до сих пор я не нашел способ сделать это еще.Мне нужно написать несколько таких сценариев, поэтому мне действительно нужно найти более простой - более легкий для чтения - способ сделать это.

Это два цикла For, которые я использую:

$b1 = 'set-aduser -identity 3423-234-23-42-432 dorstm -replace @{ geboortedatum = 01-08-1997 } waarde_org = 02-08-1997'

For ($i = 0; $i -lt $b1InArray.Length; $i++) {
    if ($b1InArray[$i].contains("=")) {
        $e = $i
        break
    }
}


For ($j = ($e + 1); $j -lt $b1InArray.Length; $j++) {
    if ($b1InArray[$j].contains("}")) {
        $f = $j
        break
    }
}

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Похоже, вы пытаетесь использовать больше Java-решения.В Powershell вы можете использовать 'ForEach'

$b1 = 'set-aduser -identity 3423-234-23-42-432 dorstm -replace @{ geboortedatum = 01-08-1997 } waarde_org = 02-08-1997'

foreach ($b in $b1) {

     if ( $b -contains '=') {
        $f = $j
     }
 }

Примечание: $ b в условии цикла foreach может быть любым, чем вы хотите, чтобы оно было таким же, как $ i в Java.

0 голосов
/ 21 декабря 2018

Много способов сделать это.Это может работать для вас:

(Select-String -InputObject $b1 -allmatches -Pattern '\d{2}-\d{2}-\d{4}').matches.value

будет выводить все даты из вашей строки $ b1 в виде массива строк.Предполагая, что все даты имеют тот же формат, что и ваш пример.Скрипка с регулярным выражением в https://regex101.com/

0 голосов
/ 21 декабря 2018

Если вы хотите получить индекс строк, которые вы ищете: для этого есть метод:

$b1.IndexOf('02-08-1997')
$b1.IndexOf('01-08-1997')

Нет необходимости писать циклы.Для таких простых вещей, как эта .Net имеет метод работы для вас.

...