$env vs env: vs [environment] -- best practice?

This topic contains 2 replies, has 3 voices, and was last updated by  Dave Wyatt 4 years, 4 months ago.

  • Author
  • #13173

    Ken Row

    Is there a "best practice" for getting environment values such as the local computer name?

    I've found each of the following work, and I've found web sites that recommend each one, but I've no idea which would be considered a "best practice".


    get-content env:computername


  • #13174

    Richard Siddaway

    I tend to use $env:COMPUTERNAME because its less typing and tab completion works

  • #13175

    Dave Wyatt

    I don't know about best practices, but I mostly like $env:COMPUTERNAME for its convenience; it can be embedded directly in a double-quoted string without the need for subexpressions.

    That said, if you specifically want to work with a System environment variable instead of a Process variable, you'll need to use methods in the [System.Environment] class. For example, these two commands will almost certainly return different values:

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

You must be logged in to reply to this topic.