Okradając hojnie stąd: http://allen-mack.blogspot.com/2008/03/replace-visual-studio-command-prompt.html , udało mi się to uruchomić. Dodałem do mojego profile.ps1 i ze światem wszystko jest w porządku.
pushd 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'
cmd /c "vcvarsall.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
write-host "`nVisual Studio 2010 Command Prompt variables set." -ForegroundColor Yellow
To działało dobrze przez lata - aż do Visual Studio 2015. vcvarsall.bat już nie istnieje. Zamiast tego można użyć pliku vsvars32.bat, który znajduje się w folderze Common7 \ Tools.
pushd 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools'
cmd /c "vsvars32.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
write-host "`nVisual Studio 2015 Command Prompt variables set." -ForegroundColor Yellow
W programie Visual Studio 2017 sytuacja uległa zmianie po raz kolejny. vsvars32.bat
Wydaje się, że porzucono go na korzyść VsDevCmd.bat
. Dokładna ścieżka może się różnić w zależności od używanej wersji programu Visual Studio 2017.
pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools"
cmd /c "VsDevCmd.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
Write-Host "`nVisual Studio 2017 Command Prompt variables set." -ForegroundColor Yellow
echo $Profile
aby zobaczyć zamierzoną ścieżkę dla swojego profile.ps1, jeśli nigdy jej nie tworzyłeśNajprostszą opcją jest uruchomienie wiersza polecenia programu VS 2010, a następnie uruchomienie programu PowerShell.exe. Jeśli naprawdę chcesz to zrobić z „domowego” znaku zachęty PowerShell, podejście, które pokazujesz, jest najlepszym rozwiązaniem. Używam scenariusza, który Lee Holmes napisał jakiś czas temu:
Uwaga: ta funkcja będzie dostępna wkrótce w wersji opartej na module programu PowerShell Community Extensions 2.0.
źródło
Znalazłem prosty sposób tutaj : zmodyfikować skrót.
Oryginalny skrót wygląda mniej więcej tak:
Dodaj
& powershell
przed ostatnim cytatem, na przykład:Jeśli chcesz, aby wyglądał bardziej jak PS, przejdź do zakładki Kolory we właściwościach skrótu i ustaw wartości Czerwony, Zielony i Niebieski odpowiednio na 1, 36 i 86.
źródło
Stare pytanie, ale warte innej odpowiedzi, aby (a) zapewnić wsparcie VS2013; (b) połączyć najlepszą z dwóch poprzednich odpowiedzi; oraz (c) zapewnić opakowanie funkcji.
Opiera się to na technice @ Andy'ego (która opiera się na technice Allena Macka, jak wskazał Andy (która z kolei opiera się na technice Roberta Andersona, jak wskazał Allen (z których wszystkie miały niewielką usterkę, jak wskazał na tej stronie użytkownik znany tylko jako „ja- - ”, więc też to wziąłem pod uwagę))).
Oto mój ostateczny kod - zwróć uwagę na użycie niechciwego kwantyfikatora w wyrażeniu regularnym do obsługi wszelkich możliwych wbudowanych równań w wartościach. Zdarza się to również w celu uproszczenia kodu: pojedyncze dopasowanie zamiast dopasowania, a następnie podzielone, jak w przykładzie Andy'ego lub dopasowanie, a następnie indexof i podciągi, jak w przykładzie "ja -").
źródło
[parameter(Mandatory=$true,
...cmd /c """$targetDir\vcvarsall.bat""&set"
Keith wspomniał już o rozszerzeniach społeczności PowerShell (PSCX),
Invoke-BatchFile
poleceniem:Zauważyłem też, że PSCX ma też
Import-VisualStudioVars
funkcję:źródło
Uznanie dla Andy'ego S. za jego odpowiedź. Używam jego rozwiązania od jakiegoś czasu, ale dzisiaj napotkałem problem. Każda wartość, która ma znak równości, jest obcinana przy znaku równości. Na przykład miałem:
Ale moja sesja PS zgłosiła:
Naprawiłem to, modyfikując mój skrypt profilu do następującego:
źródło
Dla kogoś, kto wciąż boryka się z tym w 2020 roku i Visual Studio Code 1.41.1, więc trochę poza tematem tutaj.
Używając wszystkich różnych części kodu z góry i Internetu, np. Z https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell i dzięki podejściu krok po kroku udało mi się czy poniższy skrypt działa.
Zapisano w VSCode „settings.json” i po zainstalowaniu rozszerzenia Code Runner.
Z optymalizującą wersją kompilatora Microsoft (R) C / C ++ „cl.exe” z programu Visual Studio 2015 / 14.0:
Z optymalizującą wersją kompilatora Microsoft (R) C / C ++ „cl.exe” z programu Visual Studio 2019 / 16.4.3:
HTH
źródło
Lubię przekazywać polecenia do powłoki dziecka w następujący sposób:
Lub alternatywnie
źródło