Depending on what's in that file you may be able use it's contents (but not the file) by including it in a script block, something like this (if ipconfig was the contents of the bat file):
Invoke-Command -ComputerName (get-content FileWithServerNamesInIt.txt) -ScriptBlock{ ipconfig }
If that's not possible, put the bat file in a network share. Then create a .ps1 file that does something like running "cmd.exe /c <shared-bat-file>" and using:
Invoke-Command -ComputerName (get-content FileWithServerNamesInIt.txt) -FilePath "PS1-File-That-Runs-CMD.exe"
Environment variables aren't accessed using the "%varname% method used in the CMD.exe shell. In PowerShell you'd use "$ENV:windir"