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

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

  • Author
    Posts
  • #13173

    Ken Row
    Participant

    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".

    $env:computername

    get-content env:computername

    [environment]::machinename

  • #13174

    Richard Siddaway
    Moderator

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

  • #13175

    Dave Wyatt
    Moderator

    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:

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

You must be logged in to reply to this topic.