Как стать автором
Обновить

Visual Studio 2008 PowerShell Command Prompt

Время на прочтение 2 мин
Количество просмотров 2.5K
Мне нравится 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 их убирает.
Теги:
Хабы:
+1
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн