从Powershell调用vcvarsall.bat后运行构建脚本

比尔·贝里

我试图运行Visual Studio(开发人员cmd提示符)环境变量安装批处理文件,然后从Powershell脚本中运行生成脚本,如下所示:

cmd /v:on/k "(""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" amd64_x86 && C:\buildscript.cmd --build-options)"

但是,似乎vcvarsall.bat建立的环境设置并未保留给构建脚本调用。即没有默认的编译器设置,等等。

/v:on/k交换机结合使用时,实际上是否没有利用相同的cmd会话并适当延迟了环境变量的扩展?也许这种方法是错误的...

比尔·斯图尔特

问题在于,当您运行cmd.exe运行批处理文件时,变量是在的实例中设置的cmd.exe,但是在该实例终止后它们会消失。

要变通解决此问题,您可以在本文中使用Invoke-CmdScript函数:

Windows IT Pro:在PowerShell中负责环境变量

功能如下:

# Invokes a Cmd.exe shell script and updates the environment.
function Invoke-CmdScript {
  param(
    [String] $scriptName
  )
  $cmdLine = """$scriptName"" $args & set"
  & $Env:SystemRoot\system32\cmd.exe /c $cmdLine |
  select-string '^([^=]*)=(.*)$' | foreach-object {
    $varName = $_.Matches[0].Groups[1].Value
    $varValue = $_.Matches[0].Groups[2].Value
    set-item Env:$varName $varValue
  }
}

您可以将此功能添加到PowerShell配置文件中,或将其用作脚本文件。

定义函数后,即可运行命令:

Invoke-CmdScript "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64_x86
C:\buildscript.cmd --build-options

...或您需要的任何东西。

本文还介绍了几个函数,可让您轻松保存和还原环境变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Windows 7 / VS 2019生成工具上调用vcvarsall.bat将显示“ Windows找不到powershell.exe”

来自分类Dev

Powershell ps1脚本运行bat文件,但执行后CMD屏幕关闭

来自分类Dev

TFS构建和Powershell后构建脚本

来自分类Dev

在Powershell中更改为cmd后无法通过批处理脚本文件调用bat文件

来自分类Dev

从Powershell脚本排队TFS构建,该脚本从TFS构建调用

来自分类Dev

powershell 脚本未运行以调用 excel 的宏

来自分类Dev

从Java调用Powershell脚本

来自分类Dev

从Java调用Powershell脚本

来自分类Dev

每个ng服务构建后如何链接npm脚本调用?

来自分类Dev

将Powershell脚本标记为“从不运行”后,使其运行

来自分类Dev

詹金斯:成功构建后如何执行Powershell脚本

来自分类Dev

TFS构建:以管理员身份运行Powershell脚本

来自分类Dev

挂载vcvarsall.bat后从ant执行msbuild

来自分类Dev

启动vcvarsall.bat后,从ant执行msbuild

来自分类Dev

在调用二进制文件后运行脚本

来自分类Dev

Twilio PHP - 调用完成后运行 AJAX 脚本

来自分类Dev

致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

来自分类Dev

调用命令的.bat脚本,完成后将等待用户输入

来自分类Dev

在Powershell脚本中调用Powershell cmdlet

来自分类Dev

使用Powershell脚本调用WebRequest

来自分类Dev

如何使用bat文件从启动/自动启动文件夹运行Powershell脚本?

来自分类Dev

无法从Powershell脚本调用脚本块

来自分类Dev

Powershell脚本将始终返回零结果。如果我从Powershell窗口调用该脚本,则该脚本将运行良好

来自分类Dev

在将.NET项目传输到内存并进行构建之前,如何运行PowerShell脚本?

来自分类Dev

从Oracle运行.bat脚本

来自分类Dev

如何从Gulp调用执行PowerShell脚本?

来自分类Dev

我如何从Powershell脚本调用SC创建

来自分类Dev

通过脚本“调用” Powershell工作流程

来自分类Dev

使用Powershell脚本调用Mirth Connect CLI

Related 相关文章

  1. 1

    在Windows 7 / VS 2019生成工具上调用vcvarsall.bat将显示“ Windows找不到powershell.exe”

  2. 2

    Powershell ps1脚本运行bat文件,但执行后CMD屏幕关闭

  3. 3

    TFS构建和Powershell后构建脚本

  4. 4

    在Powershell中更改为cmd后无法通过批处理脚本文件调用bat文件

  5. 5

    从Powershell脚本排队TFS构建,该脚本从TFS构建调用

  6. 6

    powershell 脚本未运行以调用 excel 的宏

  7. 7

    从Java调用Powershell脚本

  8. 8

    从Java调用Powershell脚本

  9. 9

    每个ng服务构建后如何链接npm脚本调用?

  10. 10

    将Powershell脚本标记为“从不运行”后,使其运行

  11. 11

    詹金斯:成功构建后如何执行Powershell脚本

  12. 12

    TFS构建:以管理员身份运行Powershell脚本

  13. 13

    挂载vcvarsall.bat后从ant执行msbuild

  14. 14

    启动vcvarsall.bat后,从ant执行msbuild

  15. 15

    在调用二进制文件后运行脚本

  16. 16

    Twilio PHP - 调用完成后运行 AJAX 脚本

  17. 17

    致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

  18. 18

    调用命令的.bat脚本,完成后将等待用户输入

  19. 19

    在Powershell脚本中调用Powershell cmdlet

  20. 20

    使用Powershell脚本调用WebRequest

  21. 21

    如何使用bat文件从启动/自动启动文件夹运行Powershell脚本?

  22. 22

    无法从Powershell脚本调用脚本块

  23. 23

    Powershell脚本将始终返回零结果。如果我从Powershell窗口调用该脚本,则该脚本将运行良好

  24. 24

    在将.NET项目传输到内存并进行构建之前,如何运行PowerShell脚本?

  25. 25

    从Oracle运行.bat脚本

  26. 26

    如何从Gulp调用执行PowerShell脚本?

  27. 27

    我如何从Powershell脚本调用SC创建

  28. 28

    通过脚本“调用” Powershell工作流程

  29. 29

    使用Powershell脚本调用Mirth Connect CLI

热门标签

归档