Если вы не сможете найти аналог, уже приготовленный в PowerShell, ваш единственный шанс - понять логику этого скрипта и написать его в PowerShell с нуля, поскольку есть большие различия .
Посмотрите на разницу в синтаксисе / командах и сделайте соответствующий перевод. Некоторые Bash vs Powershell связанные посты / документы, доступные в сети, например, это . И, конечно же, обратитесь к руководствам по началу работы с PowerShell. Например, синтаксис для для отличается, для PowerShell это:
for (_init_, _cond_, _incr_) {
_operators_
}
Кстати, в вашем случае лучше использовать foreach , т. Е. Иметь что-то вроде:
(get-childitem $path -Recurse | select-string -pattern .avi | % {$_.Path} > matchingfiles.txt)
$FILESARRAY = get-content matchingfiles.txt
foreach ($FILE in $FILESARRAY)
{
(get-content $FILE ) |foreach-object {$_ -replace $find, $replace} | set-content $FILE
}