I have done this in the past and this is the way I do it.
# Define the path to your batch file
$batchFilePath = "C:\path\to\your\batchfile.bat"
# Read the content of the batch file
$batchFileContent = Get-Content -Path $batchFilePath
# Define the replacements
$NewFileContent1 = $batchFileContent.Replace('192.168.10.100','10.200.30.46')
Set-Content -Value $NewFileContent1 -Path $batchFilePath -Force
$NewFileContent2 = $NewFileContent1.Replace('192.1686.10.55','10.10.133.18')
Set-Content -Value $NewFileContent2 -Path $batchFilePath -Force
Optionally you could be more aggressive and use multiple "Replace" methods on one line.
$NewFileContent1 = $batchFileContent.Replace('192.168.10.100','10.200.30.46').Replace('192.1686.10.55','10.10.133.18')
Important Note: since IP Addresses are numbers it should not matter however since you didn't share your actual value I want to be sure and tell you that the strings in the replace method overload are indeed case sensative. So for example 'cat' does not equal 'CAT' so if theer are alpha charecters in the string then be sure to match case inside the overload parenthesis.