【问题标题】:Powershell add to path, temporarilyPowershell临时添加到路径
【发布时间】:2020-11-24 23:20:03
【问题描述】:

我正在尝试编写一个简单的 PowerShell 脚本来部署 Visual Studio ASPNET Core 1 项目。

目前,我可以在批处理文件中说

Path=.\node_modules\.bin;%AppData%\npm;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git

这将在会话期间修改路径变量......在我的一生中,我无法弄清楚如何在 powershell 中做这个简单的事情。

有人可以帮我把它翻译成 powershell 吗?

TIA!

【问题讨论】:

  • 感谢 Simon,这是 google 搜索“powershell add to path temporary”时第一次点击!

标签: powershell


【解决方案1】:

选项1:修改$env:Path变量

  1. 追加到当前窗口中的Path变量:

    $env:Path += ";C:\New directory 1;C:\New directory 2"
    
  2. 在当前窗口中为Path变量添加前缀:

    $env:Path = "C:\New directory 1;C:\New directory 2;" + $env:Path
    
  3. 替换当前窗口中的Path变量(谨慎使用!):

    $env:Path = "C:\New directory 1;C:\New directory 2"
    

选项 2:使用 editenv 实用程序

我编写了一个名为editenv 的Windows 命令行工具,可以让您以交互方式编辑环境变量的内容。它在 Windows 控制台上工作(值得注意的是,它在 PowerShell ISE 上工作):

editenv Path

当您想以更具交互性的方式编辑和重新排列 Path 中的目录时,这会很有用,并且它只影响当前窗口。

【讨论】:

  • 如果您使用 += 添加到现有路径,请确保在添加的路径之前添加分号。 E.G.$Env:Path += ";C:\新建目录 1;C:\新建目录 2"
  • 我对答案中的信息进行了重新排序以避免混淆。
  • 有时您首先需要新的路径信息 - 在这种情况下您不能使用 += ex。 $Env.Path = "C:\新目录;" + $Env.Path
  • 感谢有关添加和前缀的建议 - 更新答案。
【解决方案2】:

您可以只使用$env:Path,但如果您担心这不够明确,您可以使用System.Environment.SetEnvironmentVariable()

[System.Environment]::SetEnvironmentVariable('Path',$Value,[System.EnvironmentVariableTarget]::Process);

并且 GetEnvironmentVariable() 可以显式检索:

[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Process);
[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Machine);
[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::User);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 2011-03-01
    • 1970-01-01
    • 2019-07-22
    • 2012-04-11
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多