Вы можете переименовать файл при копировании в Copy-Item, просто укажите полный путь в обоих местах:
copy-item c:\PST\1.config c:\PST\2.config
Это переименует 1.config в 2.config. Нет необходимости вызывать отдельную функцию переименования.
Ваш код должен выглядеть примерно так:
$File = Get-ChildItem -Path "V:\MyFolder\" -Filter CopyForbuild.bat -Recurse
$i=1
Foreach ($f in $File)
{
Copy-Item $f.FullName ("E:\copyforbuild\" + $f.BaseName + $i +".txt")
$i++
}
Вы можете сделать его еще короче, если используете цикл For:
$File = Get-ChildItem -Path "V:\MyFolder\" -Filter CopyForbuild.bat -Recurse
for($i = 0; $i -lt $File.Count; $i++)
{
Copy-Item $File[$i].FullName ("E:\copyforbuild\" + $File[$i].BaseName + $i +".txt")
}
Или намного короче и шире, если следовать комментариям Ричарда