Have a look at the PowerShell Community Extensions. It comes with a command to invoke a batch file, "remember" what env vars it set and bring those into your PowerShell session. In fact, my profile does just this with the VS vars e.g.:
Import-Module Pscx
function Import-VS9Vars
{
$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
Push-EnvironmentBlock -Description "Before importing VS 2008 $vcargs var"
Invoke-BatchFile "${env:VS90COMNTOOLS}..\..\VC\vcvarsall.bat" $vcargs
}
function Import-VS10Vars
{
$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
Push-EnvironmentBlock -Description "Before importing VS 2010 $vcargs vars"
Invoke-BatchFile "${env:VS100COMNTOOLS}..\..\VC\vcvarsall.bat" $vcargs
}
Import-VS10Vars
The important command is the Invoke-BatchFile. The source to this function comes in the download so if you don't want to use the whole module, you can copy out just that one function if you'd like.