versión ligeramente modificada de Casey de que es una de VS 2010 y espera a que se complete la conversión. Esto también copia el archivo de solución a uno con una x antes del .sln.
$slnFiles = ls "C:\projects\source\" -Filter *.sln -Recurse
$devenv = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"
$i = 1
foreach ($sln in $slnFiles)
{
"Upgrading Solution " + $i++ + ": " + $sln.FullName
Start-Process -Wait $devenv -ArgumentList /NoSplash,/upgrade,$sln.FullName
$name = $sln.name -replace ".sln", "x.sln"
Rename-Item $sln.FullName -NewName $name
}
"Done!"