【问题标题】:Modifying env:path and run a exe file on Powershell修改 env:path 并在 Powershell 上运行 exe 文件
【发布时间】:2020-07-31 19:17:45
【问题描述】:

我正在尝试使用调用其他 powershell 脚本的命令行菜单构建一个 powershell 脚本。这是从 script.bat 运行以避免 executionPolicy 问题。

Powershell.exe -executionpolicy remotesigned -File  scripts\install-script.ps1

几乎所有的菜单选项都可以工作,但其中一个有问题。

我需要运行一个 sample.exe 文件,但之前我需要运行另一个 OpenVino“setupvars.bat”脚本来设置一些环境变量并添加一些路由到 env:path 以及其他检查。

如果我在 CMD 窗口上手动执行此操作可以正常工作:

call "C:\Program Files(x86)\IntelSWTools\openvino\bin\setupvars.bat" 
.\sample_***.exe

在脚本上我正在尝试做这样的事情:

        '1' {
               cls 
               Start-Process "C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat" *>&1 | Out-Null
               Start-Process "sample_interactive_mask.exe"
         } 'e' { 
                return 
           }  
     } 
     pause

但它无法正常工作,显示无法建立所需的某些依赖项的错误。

我猜测添加的 env 变量和路径路由是在一个窗口上完成的,而 sample.exe 是在另一个环境中执行的,而没有正确设置此变量。

有什么办法可以达到最终的效果?

【问题讨论】:

标签: powershell


【解决方案1】:

我在使用 VisualStudio 时遇到了类似的问题。我发现的唯一解决方法是在 powershell 中转换 setupvars.bat。

这并不复杂,例如我的 vcvarsall.bat 中的这一部分:

:x86
echo Setting environment for using Microsoft Visual Studio 2008 x86 tools.
set VCINSTALLDIR=%~dp0VC\
set WindowsSdkDir=%~dp0WinSDK\
if not exist "%VCINSTALLDIR%bin\cl.exe" goto missing
set PATH=%VCINSTALLDIR%Bin;%WindowsSdkDir%Bin;%PATH%
set INCLUDE=%VCINSTALLDIR%Include;%WindowsSdkDir%Include;%INCLUDE%
set LIB=%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIB%
set LIBPATH=%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIBPATH%
goto :eof

可以翻译成:

"Setting environment for using Microsoft Visual Studio 2008 x86 tools."
$PathToDir = "C:\Users\toto\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"

$VCINSTALLDIR  = "$PathToDir\VC"
$WindowsSdkDir = "$PathToDir\WinSDK"

$env:PATH    = "$VCINSTALLDIR\Bin;$WindowsSdkDir\Bin;$env:PATH"
$env:INCLUDE = "$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE"
$env:LIB     = "$VCINSTALLDIR\Lib;$WindowsSdkDir\Lib;$env:LIB"
$env:LIBPATH = "$VCINSTALLDIR\Lib;$WindowsSdkDir\Lib;$env:LIBPATH"

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 2017-10-15
    • 2010-11-30
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2022-11-03
    相关资源
    最近更新 更多