【问题标题】:How to use an environment variable in PowerShell console?如何在 PowerShell 控制台中使用环境变量?
【发布时间】:2018-12-28 16:54:58
【问题描述】:

我有一个名为GOPATH 的环境变量。在旧式命令外壳中,我可以像这样运行命令%GOPATH%\bin\hello

Windows PowerShell 中是否有同样简单的命令?


编辑

我不想打印环境变量。我正在尝试使用它。

变量设置正确:

C:\WINDOWS\system32> echo $env:gopath
C:\per\go

现在我想在命令行调用中实际使用它,但它失败了:

C:\WINDOWS\system32> $env:gopath\bin\hello
At line:1 char:12
+ $env:gopath\bin\hello
+            ~~~~~~~~~~
Unexpected token '\bin\hello' in expression or statement.
    + CategoryInfo          : ParserError: (:) [],        ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

【问题讨论】:

标签: powershell command-line


【解决方案1】:

使用$env:[Variablename]

例如:

$env:Appdata

$env:COMPUTERNAME

使用您的示例:

$env:GOPATH

要使用它来执行脚本,请使用

& "$env:GOPATH\bin\hello"

【讨论】:

    【解决方案2】:

    在调用命令的路径中使用环境变量需要dot notationcall operator。引号扩展变量,调用运算符调用路径。

    点符号

    . "$env:M2_Home\bin\mvn.cmd"

    呼叫接线员

    & "$env:M2_Home\bin\mvn.cmd"

    【讨论】:

    • 已建议呼叫接线员。使用点源运算符也可以,但这只是偶然的。该运算符用于在当前上下文中运行(PowerShell)脚本,而不是通过调用运算符在子上下文中运行它们,但外部命令无论如何都在单独的进程中运行,因此使用. 而不是@987654328 没有优势@.
    【解决方案3】:

    一种解决方案是使用 start-process -NoNewWindow 来运行它。

    C:\windows\system32> start-process -nonewwindow $env:gopath\bin\hello.exe
    C:\windows\system32Hello, Go examples!
    >
    

    这显然更加冗长,并将命令提示符置于一个看起来很奇怪的提示符处:>。但它确实有效。

    【讨论】:

      猜你喜欢
      • 2018-11-24
      • 2021-03-17
      • 2013-02-28
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多