来自Cygwin的“来源”VsDevCmd.bat

问题描述 投票:1回答:2

所以VsDevCmd.bat是一个漂亮的脚本,为Visual Studio工具设置环境变量:

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

我正在使用来自Cygwin的Visual Studio工具cllink等。如何在不重新编写bash脚本的情况下使用该脚本设置所有相同的环境变量?

我可以从cmd shell运行批处理脚本然后启动bash,但这不能令人满意 - 我需要启动从Cygwin中“获取”批处理文件的过程。

visual-studio batch-file visual-studio-2015 cygwin
2个回答
1
投票

这就是我最终的结果。这个bash函数将使用cmd文件运行VcVarsAll.bat,然后将嵌套的bash以打印可以提取的环境变量:

# 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'")
}

然后设置,例如,PATH

export PATH="$(query_vcvarsall PATH)"

0
投票

我发现你需要的只是路径。

从DOS运行VsDevCmd.bat,然后将SET输出到文件(SET > c:\temp\set.txt

从该文件中提取PATH并将其转换为Linux格式 - C:\Program Files变为/cygdrive/c/Program Files\全部变为/。用;替换:

然后编辑你的“$ {HOME} / .bashrc”文件 - 将上面的内容添加到PATH中 - 不要忘记将:添加到原始路径的末尾。

我的“$ {HOME} /。bashrc”现在说了以下内容 - 但是复制它需要您自担风险。

export PATH =“/ c / bin:/ usr / local / bin:/ usr / bin:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / VC / Tools / MSVC / 14.11.25503 / bin / HostX86 / x86:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / VC / VCPackages:/ cygdrive / c / Program Files / Microsoft SDKs / TypeScript / 2.3:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / CommonExtensions / Microsoft / TestWindow:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / CommonExtensions / Microsoft / TeamFoundation / Team Explorer:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / MSBuild / 15.0 / bin / Roslyn:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Team Tools / Performance Tools:/ cygdrive / c / Program Files / HTML Help Workshop:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional // MSBuild / 15.0 / bin:C:/Windows/Microsoft.NET/Framework/v4.0.30319:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE /:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / Tools /:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / VC / Tools / MSVC / 14.11.25503 / bin / HostX86 / x86:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / VC / VCPackages:/ cygdrive / c / Program Files / Microsoft SDKs / TypeScript / 2.3:/ cygdrive / c /程序文件/ Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / CommonExtensions / Microsoft / TestWindow:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / IDE / CommonExtensions / Microsoft / TeamFoundation / Team Explorer: / cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / MSBuild / 15.0 / bin / Roslyn:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Team Tools / Performance Tools:/ cygdrive / c / Program Files / HTML Help Workshop:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional // MSBuild / 15.0 / bin:C:/Windows/Microsoft.NET/Framework/v4.0.30319:/ cygdrive / c / Program Files / Micros of Visual Studio / 2017 / Professional / Common7 / IDE /:/ cygdrive / c / Program Files / Microsoft Visual Studio / 2017 / Professional / Common7 / Tools /:/ cygdrive / c / Program Files / Windows Kits / 8.0 / bin / x86 :/ cygdrive / c / Program Files / 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”

© www.soinside.com 2019 - 2024. All rights reserved.