Sua pergunta é bem ampla, e eu não quero escrever um roteiro inteiro, então vou responder a parte principal dele.
Para substituir "[ip]" em um arquivo com "1.1.1.1":
gc input_file.txt | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc output_file.txt
Se você deseja substituir o arquivo original, é necessário colocar parênteses ao redor da primeira instrução para que carregue todo o arquivo na memória no começo:
(gc my_file.txt) | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc my_file.txt
gc
é a abreviação de Get-Content
, sc
é Set-Content
e %
é ForEach-Object
.