Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio &引用;资料来源;来自Cygwin的VsDevCmd.bat_Visual Studio_Batch File_Visual Studio 2015_Cygwin - Fatal编程技术网

Visual studio &引用;资料来源;来自Cygwin的VsDevCmd.bat

Visual studio &引用;资料来源;来自Cygwin的VsDevCmd.bat,visual-studio,batch-file,visual-studio-2015,cygwin,Visual Studio,Batch File,Visual Studio 2015,Cygwin,因此,VsDevCmd.bat是一个为Visual Studio工具设置环境变量的漂亮脚本: 'C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat' 我正在使用Cygwin的Visual Studio工具cl,link,等等。如何使用该脚本设置所有相同的环境变量,而不在bash中重新创建脚本 我可以从cmd shell运行批处理脚本,然后启动bash,但这并不令人满意——我需要从Cygwin中启

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

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

我正在使用Cygwin的Visual Studio工具
cl
link
,等等。如何使用该脚本设置所有相同的环境变量,而不在bash中重新创建脚本


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

我发现您所需要的只是路径

从DOS运行VsDevCmd.bat,然后将集合导出到一个文件(
SET>c:\temp\SET.txt

从该文件中提取路径并将其转换为Linux格式-
C:\ProgramFiles
变为
/cygdrive/C/ProgramFiles
\
全部变为
/
。更换

然后编辑“${HOME}/.bashrc”文件-将上述内容附加到路径中-不要忘记在原始路径的末尾添加一个

我的“${HOME}/.bashrc”现在说了以下内容——但复制它的风险自负

导出路径="/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 SDK/TypeScript/2.3:/cygdrive/c/Program Files/Microsoft VisualStudio/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 StudioStudio/2017/Professional/Team Tools/Performance Tools:/cygdrive/c/Program Files/HTML帮助研讨会:/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/MicrosoftVisual 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 SDK/TypeScript/2.3:/cygdrive/c/Program Files/Microsoft VisualStudio/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 StudioStudio/2017/Professional/Team Tools/Performance Tools:/cygdrive/c/Program Files/HTML帮助研讨会:/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/MicrosoftVisual Studio/2017/Professional/Common7/Tools/:/cygdrive/c/Program Files/Windows Kits/8.0/bin/x86:/cygdrive/c/Program Files/Microsoft SDK/F#/3.0/Framework/v4.0/:c:/Windows/Microsoft.NET/Framework/v4.0.30319:/cygdrive/c/Program Files/CMake/bin:$PATH:$HOME/bin“


下面是我的结论。此bash函数将使用
vcvvarsall.bat
文件运行
cmd
,然后将嵌套
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'")
}
然后设置,例如,
路径

export PATH="$(query_vcvarsall PATH)"

顺便问一下,您是否有“从cmd shell运行批处理脚本,然后启动bash”的命令?我无法在开发人员shell中找到启动命令的命令。感谢您提供此命令!对于VS 2019,它的小版本非常有用-以下是MSYS2.bashrc:
query_vsdevcmd(){local envars=$*(cd'/c/Program Files(x86)/Microsoft Visual Studio/2019/Community/Common7/Tools'&&cmd/c“VsDevCmd.bat&&c:/msys64/usr/bin/bash-c“printenv$envars”))export PATH=“$(query_VsDevCmd PATH):$PATH“
结果是VsDevCmd.bat在输出中生成版权头,因此必须通过输出redurection调用它以达到nul,例如
cmd/c”VsDevCmd.bat>nul&…
。此外,至少还需要添加INCLUDE和LIB env vars,以便可以使用已安装SDK的默认头。