Coloque o script inteiro no script. Não há necessidade de envolver o PowerShell em um arquivo em lotes, neste caso. Na verdade, você perde muito ao fazer isso, já que o PowerShell é orientado a objetos.
# for the filename, this is a string
# quotes needed if there's a space,
# use single quotes unless the string is an expression which needs evaluation
#
# Import-CSV builds an array of objects from the contents of the csv
# using the first row as a header
# in your case the objects will be strings which are IP addresses
#
# For your own benefit, make sure the ip address column
# (only one columnt per your post) has a simple title in the first row
$IPList = Import-CSV E:\DATA.ips.txt
# the Foreach command is a for loop used with arrays or collections to loop through all the members
Foreach ($IPAddress in $IPList) {
# In PowerShell, wget is an alias for Invoke-WebRequest
# the $() wrapper around the $IPAddress.ipaddress is to force evaluation of that expression
Invoke-WebRequest "freegeoip.net/csv/$($IPAddress.ipaddress)" -OutFile "E:\DATA\IPs\$($IPAddress.ipaddress).txt"
}