2017-08-22 3 views
0

So VsDevCmd.bat ist ein geschicktes Skript, das Umgebungsvariablen für Visual Studio-Tools setzt:"Quelle" VsDevCmd.bat von Cygwin

‚C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ Tools \ VsDevCmd .bat '

Ich verwende Visual Studio Werkzeuge cl, link, usw. von Cygwin. Wie kann ich dieses Skript verwenden, um die gleiche Umgebungsvariable zu setzen, ohne das Skript in bash neu zu erfinden?

Ich kann das Batch-Skript von cmd Shell starten und dann Bash starten, aber das ist unbefriedigend-ich muss den Prozess der "Beschaffung" der Batch-Datei aus Cygwin initiieren.

Antwort

0

Ich fand, dass alles, was Sie brauchen, ist der Pfad.

Run VsDevCmd.bat von DOS, dann SET Rohr in eine Datei (SET > c:\temp\set.txt)

aus dieser Datei die PATH extrahieren und in Linux-Format konvertieren - C:\Program Files wird /cygdrive/c/Program Files und die \ alle / werden. Die ersetzen die ; durch :.

Bearbeiten Sie dann Ihre "$ {HOME} /. Bashrc" -Datei - fügen Sie die oben genannten an den Pfad - vergessen Sie nicht, eine : an das Ende des ursprünglichen Pfades hinzuzufügen.

Mein "$ {HOME} /. Bashrc" sagt jetzt Folgendes - aber kopieren Sie es auf Ihr eigenes Risiko.

export PATH = "/ c/bin:/usr/local/bin:/usr/bin:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.11 .25503/bin/HostX86/x86:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE/VC/VCPackages:/cygdrive/c/Programme/Microsoft SDKs/TypeScript/2.3:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/MSBuild/15.0/bin/Roslyn:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Team-Tools/Leistungswerkzeuge:/cygdrive/c/Programme/HTML Hilfe Workshop:/cygdrive/c/Programme/Mic Microsoft Visual Studio/2017/Professional/Common/IDE/:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/Tools /:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE/VC/VCPackages:/cygdrive/c/Programme/Microsoft SDKs/TypeScript/2.3:/cygdrive/c/Programmdateien/Microsoft Visual Studio/2017/Professionell/Common7/IDE/CommonExtensions/Microsoft/TestWindow:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/MSBuild/15.0/bin/Roslyn:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Team-Tools/Leistungs-Tools:/cygdrive/c/Programm Dateien/HTML Hilfe-Workshop:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell // MSBuild/15.0/bin: C: /Windows/Microsoft.NET/Framework/v4.0.30319:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/IDE /:/cygdrive/c/Programme/Microsoft Visual Studio/2017/Professionell/Common7/Tools /:/cygdrive/c/Programme/Windows-Kits/8.0/bin/x86:/cygdrive/c/Programme/Microsoft SDKs/F #/3.0/Framework/v4.0 /: C: /Windows/Microsoft.NET/Framework/v4.0.30319:/cygdrive/c/Program Files/CMake/bin: $ PATH: $ HOME/bin“

0

Hier ist, was ich mit dieser bash Funktion lief cmd mit VcVarsAll.bat Datei beendet, wird dann eine verschachtelte bash. um eine Umgebungsvariable zu drucken, die extrahiert werden kann:

# Given envar names return their newline-separated values setup for VS2015 
# 
# VcVarsAll.bat is a script that sets up environment variables for Visual 
# Studio command-line builds: 
# 
# https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx 
# 
query_vcvarsall() { 
    local envars=$* 

    (cd '/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC' && 
    cmd /c "VcVarsAll.bat amd64 && c:/cygwin/bin/bash -c 'printenv $envars'") 
} 

Dann setzen zum Beispiel PATH:

export PATH="$(query_vcvarsall PATH)"