замена вашего однострочника, с соблюдением требований многократной замены
(get-content file.txt -raw) -replace "1","2" -replace "3","4" -replace "5","6" | out-file file.txt
или, если вы не готовы прописывать все замены в командной строке а хотите, как тут посоветовали, читать из csv файла с заголовками oldword и newword. Будет как то так, но код не тестировал, написал по памяти
$pairs = import-csv csvfile.txt
$filecontent = get-content file.txt -raw
foreach ($pair in $pairs) { $filecontent =$filecontent -replace $pair.oldword,$pair.newword }
set-content file.txt -value $filecontent
Кстати, когда задаете вопрос - лучше пользоваться полными наименованиями операций и функций
P.S. меня в комментариях поправили - нашли ошибку. Чтобы код был хоть как-то работоспособен я ошибку исправил в ответе. Спасибо! )
Дополнительно нашел свою ошибку в комментарии к коду автора вопроса. И исправил ее у себя )
get-content возвращает массив строк, поэтому % (foreach) в вопросе имеет смысл - my bad
мой "неэффективный" но работающий скрипт теперь считывает весь файл в одну строку