Volant libéralement d'ici: http://allen-mack.blogspot.com/2008/03/replace-visual-studio-command-prompt.html , j'ai pu faire fonctionner cela. J'ai ajouté ce qui suit à mon profile.ps1 et tout va bien avec le monde.
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
Cela a bien fonctionné pendant des années - jusqu'à Visual Studio 2015. vcvarsall.bat n'existe plus. Au lieu de cela, vous pouvez utiliser le fichier vsvars32.bat, qui se trouve dans le dossier 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
Les choses ont encore changé pour Visual Studio 2017. vsvars32.bat
semble avoir été abandonné en faveur de VsDevCmd.bat
. Le chemin exact peut varier en fonction de l'édition de Visual Studio 2017 que vous utilisez.
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
pour voir le chemin prévu pour votre profile.ps1, si vous ne l'avez jamais crééL'option la plus simple consiste à exécuter l'invite de commande VS 2010, puis à démarrer PowerShell.exe. Si vous voulez vraiment faire cela à partir de votre invite PowerShell «d'accueil», l'approche que vous montrez est la voie à suivre. J'utilise un script que Lee Holmes a écrit il y a quelque temps:
Remarque: cette fonction sera bientôt disponible dans la version basée sur le module PowerShell Community Extensions 2.0.
la source
J'ai trouvé une méthode simple ici : modifier le raccourci.
Le raccourci d'origine est quelque chose comme ceci:
Ajoutez
& powershell
avant le dernier devis, comme ceci:Si vous voulez le faire ressembler davantage à PS, allez dans l' onglet Couleurs des propriétés du raccourci et définissez les valeurs Rouge, Vert et Bleu sur 1, 36 et 86 respectivement.
la source
Une vieille question mais qui mérite une autre réponse pour (a) fournir un support VS2013; (b) combiner la meilleure des deux réponses précédentes; et (c) fournir un wrapper de fonction.
Cela s'appuie sur la technique de @ Andy (qui s'appuie sur la technique d'Allen Mack comme Andy l'a indiqué (qui à son tour s'appuie sur la technique de Robert Anderson comme Allen l'a indiqué (qui avait tous un léger problème comme indiqué sur cette page par l'utilisateur connu uniquement sous le nom de "me- - ", alors j'en ai aussi tenu compte))).
Voici mon code final - notez l'utilisation du quantificateur non gourmand dans l'expression régulière pour gérer tous les égaux incorporés possibles dans les valeurs. Cela arrive aussi à simplifier le code: une seule correspondance au lieu d'une correspondance puis fractionnée comme dans l'exemple d'Andy ou une correspondance puis indexof et sous-chaînes comme dans l'exemple de "me -").
la source
[parameter(Mandatory=$true,
...cmd /c """$targetDir\vcvarsall.bat""&set"
Keith a déjà mentionné les extensions de communauté PowerShell (PSCX), avec sa
Invoke-BatchFile
commande:J'ai également remarqué que PSCX a également une
Import-VisualStudioVars
fonction:la source
Félicitations à Andy S pour sa réponse. J'utilise sa solution depuis un certain temps, mais j'ai rencontré un problème aujourd'hui. Toute valeur qui a un signe égal est tronquée au signe égal. Par exemple, j'avais:
Mais ma session PS a rapporté:
J'ai résolu ce problème en modifiant mon script de profil comme suit:
la source
Pour quelqu'un qui a encore du mal avec cela en 2020 et Visual Studio Code 1.41.1, donc un peu hors sujet ici.
En utilisant toutes les différentes parties du code ci-dessus et Internet, par exemple à partir de https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell et avec une approche étape par étape, j'ai réussi à faire fonctionner le script ci-dessous.
Enregistré dans VSCode "settings.json" et avec l'extension Code Runner installée.
Avec Microsoft (R) C / C ++ Optimizing Compiler Version "cl.exe" de Visual Studio 2015 / 14.0:
Avec Microsoft (R) C / C ++ Optimizing Compiler Version "cl.exe" de Visual Studio 2019 / 16.4.3:
HTH
la source
J'aime passer les commandes dans un shell enfant comme ceci:
Ou bien
la source