Pull to refresh

Visual Studio 2008 PowerShell Command Prompt

Reading time2 min
Views2.6K
Мне нравится PowerShell, он не в пример функциональнее и более читаем чем cmd. Но вот незадача — иногда приходится открывать командную строку Visual Studio, а она не PowerShell. Выполнять же из одной консоли ls и nmake хочется.

Как вариант можно было бы взять vsvars32.bat и переписать его, но это откровенное надругательство над свободным временем и есть путь проще —
blogs.msdn.com/domgreen/archive/2009/05/03/visual-studio-command-prompt-via-powershell.aspx. Я немного изменил скрипт, подчистив из него мусор.


#
# Выполнить bat файл и экспортировать из него
# переменные среды в PowerShell
#
function Get-BatchFile( $batFile ) {
$command = "`"$batFile`" & set"
cmd /c $command | Foreach-Object {
$name, $value = $_.split('=')
Set-Item -path env:$name -value $value
}
}

#
# Сконфигурировать PowerShell на использование Visual Studio 2008 Command Prompt
#
function SetupVisualStudio2008Prompt( ) {
# Установить переменные среды
$batFile = [System.IO.Path]::Combine( $env:VS90COMNTOOLS, "vsvars32.bat" )
Get-BatchFile $batFile
$title = "Visual Studio 2008 Windows PowerShell"

# Определить находимся ли под админом
$wid = [System.Security.Principal.WindowsIdentity]::GetCurrent( )
$principal = new-object System.Security.Principal.WindowsPrincipal($wid)
$isAdmin = $principal.IsInRole( [System.Security.Principal.WindowsBuiltInRole]::Administrator )
if( $isAdmin ) {
$title = $title + " (Administrator)"
}
else {
$title = $title + " (Non-Administrator)"
}

# Установить титул окна
[System.Console]::Title = $title
}

#
# Выполняется при запуске PowerShell
#
SetupVisualStudio2008Prompt
cls


При запуске PowerShell подгружает содержимое профиля из Documents/WindowsPowerShell/profile.ps1. Поэтому прописав profile.ps1 скрипт и разрешив в PowerShell выполнение скриптов, получим настроенную на Visual Studio командную строку PowerShell =)

PS А настроив TotalCommander на вызов PowerShell при нажатии Ctrl+X наступает просто блаженство =)
PPS Извиняюсь что слетели отступы в коде, но я не не понял почему тег code их убирает.
Tags:
Hubs:
Total votes 12: ↑6 and ↓60
Comments0

Articles