Как посчитать успешным найти (и заменить)
Я пытаюсь подсчитать количество замен, сделанных простым скриптом, например:
$count = 0
Function findAndReplace($objFind, $FindText, $ReplaceWith) {
$count += $objFind.Execute($FindText, $matchCase, $matchWholeWord, \`
$matchWildCards, $matchSoundsLike, $matchAllWordForms, \`
$forward, $findWrap, $format, $ReplaceWith, $replace)
}
Замены сделаны хорошо, но $count
остается в 0
...
2 ответа
Решение
Это ограниченная проблема. насколько мне известно $count
не должен быть инициализирован первым.
Логика приращения выглядит найти. Однако вам нужно будет вернуть его из функции после приращений. В противном случае это все еще будет 0
как определено в рамках области за пределами функции.
Function findAndReplace($objFind, $FindText, $ReplaceWith) {
$count += $objFind.Execute($FindText, $matchCase, $matchWholeWord, \`
$matchWildCards, $matchSoundsLike, $matchAllWordForms, \`
$forward, $findWrap, $format, $ReplaceWith, $replace)
return $count;
}
$myCountOutSideFunctionScope = findAndReplace -objFind ... -FindText ... -ReplaceWith ...
$count
должен быть внутри функции, которую нужно использовать, или поместить ее в качестве параметра.
Попробуй это
Function findAndReplace($objFind, $FindText, $ReplaceWith) {
$count = 0
$replacementfound = $objFind.Execute($FindText, $matchCase, $matchWholeWord, \`
$matchWildCards, $matchSoundsLike, $matchAllWordForms, \`
$forward, $findWrap, $format, $ReplaceWith, $replace)
if ($replacementfound -eq "True"){$count++}
write-host $count
}